Tải bản đầy đủ - 0 (trang)
CHƯƠNG 3: THIẾT KẾ VÀ LẬP TRÌNH

CHƯƠNG 3: THIẾT KẾ VÀ LẬP TRÌNH

Tải bản đầy đủ - 0trang

Báo Cáo Tốt Nghiệp



3.1.1.1 Tạo thuộc tính cho đối tượng

Sau đây là bảng mô tả các giá trị và thuộc tính của các hộp thoại trong hình, chúng ta tiến

hành thay đổi các giá trị tương ứng theo bảng sau:

STT



Tên thuộc tính

String



1

2

3



Tag

String

Tag

Tag

String



4

5

6

7

8

9

10

11

12



Tag

String

Tag

String

Tag

String

Tag

String

Tag

Tag

Tag

String

Tag

String

Tag



Giá trị thuộc tính

TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH

PHỐ HỒ CHÍ MINH

TenTruong

KHOA CƠNG NGHỆ ĐIỆN TỬ

KhoaCNDT

LogoTruong

ĐỀ TÀI : DCT TRONG NÉN ẢNH SỬ DỤNG

PHẦN MỀM MATLAB

DeTai

GVHD : Th.S Mạc Đức Dũng

TenGV

Danh sách thành viên

DSTV

Đoàn Minh Thy

TenSV1

Đặng Thị Trúc Tiên

TenSV2

Thy

Tien

Chuyển Giao Diện

ChuyenGiaoDien

Đóng giao diện

DongGiaoDien

Bảng 3.1 Mơ tả thuộc tính đối tượng



Sau khi chỉnh sửa các thông số ta dùng chuột để di chuyển các hộp thoại, bố trí hộp thoại

theo mong muốn, ta được giao diện như sau:



30



Báo Cáo Tốt Nghiệp



Hình 3.2 Giao diện ứng dụng



3.1.1.2 Một số tính năng mở rộng

Chú ý, để tạo sự thẳng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau:

Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, Trên Menu chọn Align

Objects . Hộp thoại Align hiện ra:



31



Báo Cáo Tốt Nghiệp



Hình 3.3a Hộp thoại Align Objects trên giao diện

Trong hộp thoại trên ta có thể cân chỉnh các nút, nhóm nút sao cho chúng thẳng

hàng,thẳng cột và đều nhau. Sau khi cân chỉnh nhấn nút Apply để lưu thay đổi.

Trên hộp thoại GUI Options tại Resize behavior chọn dòng số 2 (Proportional), dòng này

cho phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự động

thay đổi kích thước phù hợp với nền giao diện, nhấn OK để lưu thay đổi. [9]



32



Báo Cáo Tốt Nghiệp



Hình 3.3b Hộp thoại Align Objects trên giao diện



3.1.1.3 Thực thi hàm:

a) Giao diện trong mfile

Khi đã cân chỉnh xong toàn bộ giao diện trong GUI,nhấn Ctrl+S hoặc nhấn vào biểu

tượng Save trên thanh Menu tại đây ta có thể lưu trữ file .fig và Matlab sẽ tạo ra file .m

để lưu trữ

Sau đó nhấn F5 (hoặc nhân tổ hợp phím Ctrl + T hoặc nhấp vào biểu tượng Run Figure

trên thanh Menu).

Khi Run, Matlab sẽ tự chạy file .m và hiển thị giao diện đồ họa lên màn hình. Ta bắt đầu

thao tác với file.m để viết code

33



Báo Cáo Tốt Nghiệp



Hình 3.4 Giao diện mfile

Khi ta chưa thao tác trong Trong file .m xuất hiện như trên hình, trong đó, tất cả các hàm

function đều được Matlab hỗ trợ tạo sẵn các hàm chức năng có liên quan, ta chỉ việc thao

tác trên đó.

Mỗi sau một hàm bất kì đều có các chú thích bên dưới (sau dấu %), ta có thể xóa tồn bộ

chúng đi đễ dễ nhìn cũng khơng ảnh hưởng đến các hàm.

Trong Mfile có sẵn các hàm callback, ta có thể tìm trong Mfile các hàm liên quan để viết

câu lệnh, tuy nhiên, để nhanh hơn chúng ta có thể làm như sau:

 Quay lại màn hình giao diện GUI vừa thiết kế, nhấp vào hộp thoại muốn thực thi

hàm callback, nhấp chuột phải vào đối tượng chọn View Callbacks -> Callback,

Như hình sau:



34



Báo Cáo Tốt Nghiệp



Hình 3.5 Tìm hàm callback cho đối tượng điều khiển

 Sau đó hàm callback sẽ tự động được gọi và con trỏ chuột sẽ tìm đến vị trí của nó

trong Mfile.

Bây giờ khi muốn gọi một hàm nào ta cũng có thể thực hiện như trên. Sau đó tiến hành

viết câu lệnh cho nó.

a) Một số hàm trong GUI

Hàm callback được lập trình cho các nút button, checkbox, edit text… nhưng static text

và axes… thì khơng có hàm callback.

Mỗi một callback được viết với cấu trúc như sau:

function Tag_Callback(hObject, eventdata, handles)

Với Tag chính là giá trị của Tag mà ta đã đặt khi tạo giao diện. Các hàm chứa bên trong

callback bao gồm hObject, evendata,handles [9]

 Hobject là hàm truy cập nội bộ của mỗi function riêng lẽ

 Evendata là hàm xác đinh thuộc tính của function

35



Báo Cáo Tốt Nghiệp



 Handles là hàm truy cập liên kết giữa các function, nó bao gồm tất cả các cấu trúc

của người dùng, được sử dụng để truy xuất qua các điều khiển khác.

Hàm Get cho phép ta gọi thuộc tính của đối tượng.

Hàm Set cho phép ta đặt giá trị cho thuộc tính của đối tượng.

b) Lập trình các đối tượng

 Nút BUTTON “chuyển giao diện:

- Thực hiện các bước như trên ta bắt đầu viết code cho giao diện giới thiệu.

- Ta click chuột phải vào đối tượng “Chuyển Giao Diện” chọn “View Callbacks”

sau đó chọn “ Callback” Matlab sẽ chuyển qua giao diện file .m để viết code cho

nút tượng “Chuyển Giao Diện”.

- Lần lượt viết code vào phần function như bên dưới:

function ChuyenGiaoDien_Callback(hObject, eventdata, handles)

close

DCT

- Giải thích :

 Câu lệnh 1: close

• Cơng dụng: Đóng giao diện giới thiệu.

 Câu lệnh 2: DCT

• Cơng dụng: Chuyển sang giao diện làm việc chính DCT.

 Nút BUTTON “ đóng giao diện”

- Thực hiện các bước như trên ta bắt đầu viết code cho giao diện giới thiệu

- Ta click chuột phải vào đối tượng “Đóng Giao Diện” chọn “View Callbacks” sau

đó chọn “ Callback” Matlab sẽ chuyển qua giao diện file .m để viết code cho nút

tượng “Đóng Giao Diện”

- Lần lượt viết code vào phần function như bên dưới:

function DongGiaoDien_Callback(hObject, eventdata, handles)

choice = questdlg('Ban co muon dong chuong trinh?', ...

%Bat dialog hoi co

muon tat giao dien khong

'Close', .... 'Có', 'Khơng', 'Có');

switch choice

case 'Có'

% Luachon Co

close

case 'Khơng' % Lua chon Khong

end

- Giải thích:

 Câu lệnh 1: choice = questdlg('Ban co muon dong chuong trinh?', 'Close', ....

'Có', 'Khơng', 'Có');

• Cơng dụng: Hiển thị một khung cửa sổ lựa chọn, sẽ hiển thị dòng 'Ban

co muon dong chuong trinh?'

36



Báo Cáo Tốt Nghiệp



• Trong đó:

o 'Close'Đây là tên của cửa sổ chúng ta muốn đặt tên là gì. Hiển thị

phía bên trên góc trái cửa sổ.

o 'Có', 'Khơng', 'Có' Hai chữ 'Có', 'Khơng' là hai nút sẽ hiện lên

trong khung cửa sổ còn chữ 'Có' là phần hiển thị được nổi bật khi

khung cửa sổ hiện lên.

 Câu lệnh 2:



-



-



-



switch choice

case 'Có'

close

case 'Khơng'

end

• Cơng dụng: Gán cho biến choice bằng câu lệnh bên dưới.

• Trong đó: Khi ta nhấn nút 'Có' thì phần code sẽ chạy tới lệnh close giao

diện giới thiệu sẽ đóng còn nếu nhấn nút 'Khơng'thì code sẽ chạy tới

lệnh end đóng lại khung cửa sổ tắt giao diện.

 “Mở giao diện”

Ta tìm đến hàng code trong file giaodien.m

function varargout = giaodien_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

Lần lượt viết code vào phần function như bên dưới

function varargout = giaodien_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

axes(handles.LogoTruong);

a=imread('logo.jpg');

imshow(a);

axes(handles.Thy);

Thy=imread('Thy.jpg');

imshow(Thy);

axes(handles.Tien);

Tien=imread('Tien.jpg');

imshow(Tien);

Giải thích

 Câu lệnh 1:

axes(handles.LogoTruong);

a=imread('logo.jpg');

imshow(a);

• Cơng dụng: Hiển thị hình ảnh logo.jpg theo đường dẫn ta đã dẫn lên phần axes

có tag là LogoTruong.

37



Báo Cáo Tốt Nghiệp















• Trong đó:

o a là biến được gán

o imread đọc giá trị thuộc tính theo đường dẫn

o imshow hiển thị bức ảnh đã chọn

 Câu lệnh 2:

axes(handles.Thy);

Thy=imread('Thy.jpg');

imshow(Thy);

Công dụng: Hiển thị hình ảnh Thy.jpg theo đường dẫn ta đã dẫn lên phần axes có

tag là Thy.

Trong đó:

o Thy là biến được gán.

o imread đọc giá trị thuộc tính theo đường dẫn.

o imshow hiển thị bức ảnh đã chọn.

 Câu lệnh 3:

axes(handles.Tien);

Thy=imread('Tien.jpg');

imshow(Thy);

Công dụng: Hiển thị hình ảnh Tien.jpg theo đường dẫn ta đã dẫn lên phần axes có

tag là Tien.

Trong đó:

o Tien là biến được gán.

o imread đọc giá trị thuộc tính theo đường dẫn.

o imshow hiển thị bức ảnh đã chọn.



3.1.2 Giao diện nén ảnh DCT

3.1.2.1 Khởi tạo đối tượng điều khiển

-



Tương tự ở phần Giao diện giới thiệu.

Lần lượt kéo thả các nút như hình bên dưới:



38



Báo Cáo Tốt Nghiệp



Hình 3.6 Thiết kế giao diện

-



Mỗi hộp thoại có Inspector , bằng cách nhâp đúp chuột vào hoặc chuột phải chọn

Property Inspector.



3.1.2.2 Tạo thuộc tính cho các đối tượng:

-



Sau đây là bảng mơ tả các giá trị và thuộc tính của các hộp thoại trong hình, chúng

ta tiến hành thay đổi các giá trị tương ứng theo bảng sau:



STT

1

2

3

4



Tên Thuộc Tính

String

Tag

Title

Tag

String

Tag

String



Giá Trị Thuộc Tính

DCT TRONG NÉN ẢNH SỬ DỤNG PHẦN MỀM

MATLAB

TenDeTai

Nén Ảnh

NA

ẢNH GỐC

tAnhGoc

ẢNH NÉN

39



Báo Cáo Tốt Nghiệp



5

6

7

8

9

10

11

12

13

14

15

16

17



18

19

20

21

22

23

24

25



Tag

Tag

Tag

Title

Tag

String

Tag

String

Tag

Tag

Tag

Tag

Tag

String

Tag

String

Tag

String

Tag

String



Tag

String

Tag

String

Tag

String

Tag

String

Tag

String

Tag

String

Tag

String

Tag

String

Tag



tAnhNen1

AnhGoc

AnhNen1

Giải Nén Ảnh

GNA

ẢNH NÉN

tAnhNen2

ẢNH GIẢI NÉN

tAnhGiaiNen

AnhNen2

AnhGiaiNen

CongCu

TinhNang

Chọn Ảnh

ChonBucAnh

Nén Ảnh

NenAnh

GiaiNenAnh

GiaiNen

1 hệ số DCT

3 hệ số DCT

5 hệ số DCT

7 hệ số DCT

9 hệ số DCT

10 hệ số DCT

HeSoDCT

Xóa

Xoa

Kích Thước Gốc

Kich_Thuoc_Goc

KTG

KB

KB1

Kích Thước Nén

Kich_Thuoc_Nen

KTN

KB

KB2

Hệ Số Nén

HSN

40



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 3: THIẾT KẾ VÀ LẬP TRÌNH

Tải bản đầy đủ ngay(0 tr)

×