Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

99 1.9K 9
Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tham khảo công nghệ thông tin Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 1 CHƢƠNG I: TÌM HIỂU CƠ BẢN VỀ MATLAB VÀ GUI I) Cơ bản về Matlab: 1) Giới thiệu chung về Matlab: Matlab là một công cụ tính toán trong kỹ thuật, đặc biệt là các bài toán về ma trận. Matlab còn cung cấp các toolboxes chuyên dụng để giải quyết những vấn đề cụ thể như xử ảnh, xử số tín hiệu, neuron, mô phỏng… Matlab cung cấp Image Processing toobox, chuyên về xử ảnh. Có thể nói Matlab là một công cụ lợi hại giúp cho việc thực hiện các giải thuật xử ảnh nhanh chóng và dễ hiểu. 2) Khởi động Matlab: 2.1) Mở chƣơng trình: -Click vào biểu tượng để mở chương trình. 2.2) Nhập lệnh trong Matlab: - Cửa sổ Command line hiện ra, đây là nơi chúng ta sẽ nhập lệnh và Matlab đưa ra kết quả. - Lệnh sẽ thực hiện ngay và thể hiện kết quả thực thi trên màn hình. Vd: >> 5+3 ans = 8 - Trong nhiều trường hợp ta không muốn thể hiện kết quả thì sau khi gõ lệnh phải thêm dấu “;”. 2.3) Sử dụng công cụ giúp đỡ: -Đánh lệnh help ten_lenh để biết được cách sử dụng và công dụng của ten_lenh. Ví dụ: help convert -Nếu không biết chính xác tên lệnh là gì, ta có thể dùng lệnh lookfor. -Ví dụ: lookfor convert sẽ cho ta danh sách các lệnh có từ convert trong phần trợ giúp. Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 2 3) Phép toán với vector và ma trận: 3.1) Các toán tử: -Trong Matlab, không cần khai báo biến. Matlab phân biệt biến chữ hoa và thường Ví dụ: A và a là hai biến khác nhau -Các phép toán số học: +,-,*,/,\(chia đảo), ^. -Các toán tử quan hệ :< , <= , > , >= , == , ~= -Các toán tử logic : & , | (or) , ~ (not) -Các hằng : pi 3.14159265 i số ảo j tương tự i eps sai số 2-52 inf vô cùng lớn NaN Not a number 3.2) Làm việc với vector và ma trận: -Trong Matlab, tất cả các đối tượng đều xem là ma trận. Một chữ số là một ma trận 1*1 . Một vector là ma trận một hàng hay một cột. Ví dụ: >> a=[5 10 2;10 2 4; 2 4 5] a = 5 10 2 10 2 4 2 4 5 -Chỉ số : Phần tử ở hàng i cột j của ma trận có kí hiệu là A(i,j). Tuy nhiên ta cũng có thể tham chiếu tới phần tử của mảng nhờ một chỉ số A(k). Ví dụ: A(6) là tham chiếu của A(3,2). -Toán tử “:” là một toán tử quan trọng, xuất hiện ở nhiều dạng khác nhau Ví dụ: >> 5:10 Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 3 ans = 5 6 7 8 9 10 >> 1:2:10 ans= 1 3 5 7 9  A(:,j) để trích ra cột thứ j của A  A(i,:) để trích ra hàng thứ i  A(k:l,m:n) trích ra ma trận con của A  V(i:j) trích ra một phần vector V Ví dụ: >> A=[2 4 6; 1 3 5; 3 1 4]; >> A(3,:) ans = 3 1 4 -Chuyển vị: Dùng dấu „ để tạo ma trận chuyển vị Ví dụ: >>a=[1 3; 2 4] a = 1 3 2 4 >> a„ ans = 1 2 3 4 -Phép toán số học với ma trận: Cộng, trừ ma trận: >> a=[2 3]; Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 4 >> b=[1 2]; >> a+b ans = 3 5 Nhân hai ma trận: >> a*b„ ans = 8 >> a.*b ans = 2 6 Chia các thành phần của ma trận này cho một ma trận khác: >> a./b ans = 2.0000 1.5000 Lũy thừa của ma trận: >> a.^2 ans = 4 9 >> c=[1 2; 3 4]; >> c^2 ans = 7 10 15 22 -Ma trận đặc biệt:  zeros(m,n): ma trận toàn 0  eye(n):ma trận đơn vị Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 5  ones(m,n): Ma trận toàn 1 4) Lập trình trong matlab: 4.1) Biểu thức điều kiện: Gần giống trong C -If, else , elseif. -switch( chỉ thực thi duy nhất một nhóm lệnh) 4.2) Vòng lập: -for, while. 5)Hàm m-file:  Hàm m-file là một chương trình con do chúng ta yêu cầu các đối số ngõ vào và có thể trả về đối số ngõ ra  Cú pháp: function[outputArgs]=function_name(inputArgs) -Chú thích(đặt sau dấu %, chú thích sẽ hiện ra khi dùng lệnh help) -Các lệnh. -return; Phải lưu lại với tên giống tên hàm. Ví dụ:Vẽ hàm sau trong khoảng [-10,10] Giải: function f = function1(x) y = 1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6 ; Lưu lại với tên function1.m >>fplot(„function1‟,[-10,10]); 6)Vẽ hình trong Matlab: -Matlab cung cấp nhiều hàm để biểu diễn đồ thị 2D và 3D.  plot: vẽ đồ thị 2D  plot3: vẽ đồ thị 3D Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 6  loglog: vẽ đồ thị các trục là logarit  semilogx, semilogy: vẽ đồ thị với 1 trục là logarit -Sử dụng hàm figure để tạo nhiều cửa sổ hình vẽ -Sử dụng lệnh subplot để vẽ nhiều hình trên một cửa sổ -Hàm chú thích hình vẽ:  title: Nhãn hình vẽ  xlabel, ylabel,zlabel: nhãn các trục.  legend: thêm chú thích vào hình vẽ Ví dụ: x = -pi:.1:pi; y = sin(x); >>plot(x,y) xlabel('t = 0 to 2\pi','Fontsize',16) ylabel('sin(t)','Fontsize',16) title('\it{Gia tri cua sin tu zero den 2 pi}','Fontsize',16) II) Matlab GUI: 1) Giới thiệu:  Gui-là giao diện bằng hình ảnh của chương trình  Gui-bao gồm các nút nhấn, hộp liệt kê, thanh trượt, menu… chúng cung cấp cho người dùng sử dụng một môi trường làm việc thân thiện để họ tập trung vào các ứng dụng của chương trình hơn là đi tìm hiểu cách thức làm việc của chương trình đó. Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 7  Để mở công cụ tạo Gui : File New GUI  Khi lưu giao diện vừa tạo, Matlab sẽ tạo ra hai file có cùng tên nhưng khác phần mở rộng: - File có phần mở rộng .fig chứa nội dung của giao diện - File có phần mở rộng .m chứa những đoạn mã liên quan đến giao diện Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 8 Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 9  Khi thiết kế bất cứ thành phần nào của Gui ta cần thiết lập thuộc tính cho thành phần đó.  Để thiết lập các thuộc tính ta có thể chọn mục “ Property Inspector” trên thanh công cụ hoặc right-click vào đối tượng và chọn mục “Inspector Properties”  Hai thuộc tính quan trọng mà ta cần xác lập là “String Property” và “ Tag Property”. - String property : dòng ký tự xuất hiện trên đối tượng. - Tag property : tên của đối tượng.  Khi click chuột vào 1 đối tượng, Matlab sẽ gọi hàm tương ứng với đối tượng đó. Tên của hàm chính là tên của đối tượng cộng với “_Callback” 2) Các hàm thƣờng đƣợc sử dụng trong Gui: Set : Thay đổi giá trị của các thuộc tính của một đối tượng giao diện set(handles.TextBox,‟String‟,str) Get : Truy xuất giá trị của thuộc tính của một đối tượng giao diện get(handles.EditBox,‟String‟)  Ngoài ra còn có các hàm như axes, guide, num2str(), str2num()… Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành Trang 10 CHƢƠNG II: CƠ BẢN VỀ ẢNH VÀ CÁC HÀM XỬ ẢNH CƠ BẢN TRONG MATLAB I) Các kiểu ảnh trong Matlab: 1) Ảnh Index: Ảnh được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map. Ma trận dữ liệu có thể thuộc kiểu uint8, uint16 hoặc double. Ma trận màu là một ma trận kich thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh. Giá trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận màu. [...]... của ảnh, nhưng tập trung vào hai nhánh chính là xử ảnh trong miền không gian và xử ảnh trong miền tần số Trong miền không gian, ảnh được xử trực tiếp trên các pixels Miền tần số sử dụng biến đổi Fourier để xử II) Xử ảnh trong miền không gian: 1) Giới thiệu: Miền không gian là tập hợp các pixels trong một bức ảnh Chúng ta sẽ tiến hành xử trực tiếp trên các pixels này Quá trình xử lý. .. lọc sẽ nằm bên ngoài ảnh Có nhiều giải pháp để giải quyết vấn đề này Một giải pháp đơn giản là ta chỉ tiến hành xử tại các điểm có khoảng cách không nhỏ hơn so với biên ảnh Kết quả là ảnh sau lọc có kích thước nhỏ hơn so với ảnh gốc nhưng toàn bộ điểm ảnh đều được xử Trong trường hợp cần ảnh sau xử có cùng kích thước với ảnh gốc, một giải pháp là tiến hành xử các điểm ảnh ở gần biên với các... chuột để chọn phần ảnh cần trích xuất sau đó thả chuột Trang 19 Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành CHƢƠNG III: NÂNG CAO CHẤT LƢỢNG ẢNH I) Mở đầu: Nâng cao chất lượng ảnh số là quá trình xử trên ảnh ban đầu để tạo ra kết quả là một bức ảnh tốt hơn xét theo một tiêu chí cụ thể Ví dụ xử để nâng cao chất lượng của ảnh chụp Xquang sẽ khác với việc nâng cao chất lượng của ảnh chụp của một vệ... mỗi cột sẽ tương ứng với các phần tử điểm ảnh lân cận điểm ảnh cần lọc Ví dụ như cột đầu tiên sẽ tương ứng với các pixels lân cận điểm ảnh ở vị trí đầu tiên của ảnh Đối với các các điểm ảnh gần biên thì cột tương ứng của ma trận A sẽ có thêm các thành phần padding, colfilt sử dụng padding là 0 Thông thường A có kích thước các cột nhỏ hơn MN vì hàm colfilt thường chia ảnh f ra làm nhiều ảnh nhỏ để tiết... hiển thị dưới dạng ảnh Trang 16 Báo cáo đồ án ĐTVT1 GVHD : Bùi Minh Thành III) Các hàm xử cơ bản: 1) Đọc và ghi dữ liệu ảnh:  Hàm imread đọc các file ảnh với bất kỳ các định dạng ảnh đã biết hiện nay và lưu lại dưới dạng một ma trận biểu diễn ảnh trong Matlab Cú pháp : A=imread(filename,fmt)  Hàm imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong Matlab thành một file ảnh dưới một trong... biến đổi mức xám sau: Với hình a, phép biến đổi cho ta ảnh sau xử có độ tương phản cao hơn so với ảnh ban đầu Các giá tri mức xám rm nhưng được nén lại gần mức 1( sáng hơn) làm ảnh sau xử có độ tương phản cao Phép biến đổi ở hình b nhằm biến 1 ảnh grayscale thành 1 ảnh nhị phân Ta xét mức ngưỡng m, với r . của ảnh, nhưng tập trung vào hai nhánh chính là xử lý ảnh trong miền không gian và xử lý ảnh trong miền tần số. Trong miền không gian, ảnh được xử lý trực. chuyên dụng để giải quyết những vấn đề cụ thể như xử lý ảnh, xử lý số tín hiệu, neuron, mô phỏng… Matlab cung cấp Image Processing toobox, chuyên về xử lý ảnh.

Ngày đăng: 23/11/2012, 13:46

Hình ảnh liên quan

Với hình a, phép biến đổi cho ta ảnh sau xử lý có độ tương phản cao hơn so với ảnh ban đầu - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

i.

hình a, phép biến đổi cho ta ảnh sau xử lý có độ tương phản cao hơn so với ảnh ban đầu Xem tại trang 21 của tài liệu.
2.1) Một số phép biến đổi mức xám cơ bản: a)Ảnh âm bản:  - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

2.1.

Một số phép biến đổi mức xám cơ bản: a)Ảnh âm bản: Xem tại trang 21 của tài liệu.
Hình trên là ảnh ban đầu và sau khi xử lý dùng cân bằng histogram. Ta thấy rằng ảnh ban đầu có vùng tối chiếm diện tích rất  lớn, do đó histogram có sự tập trung cường độ về phía phần tối - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

Hình tr.

ên là ảnh ban đầu và sau khi xử lý dùng cân bằng histogram. Ta thấy rằng ảnh ban đầu có vùng tối chiếm diện tích rất lớn, do đó histogram có sự tập trung cường độ về phía phần tối Xem tại trang 29 của tài liệu.
Trong đó hệ số cho phép chỉnh mức độ sắc nét của hình ảnh.   Ta có thể dùng mặt nạ lọc trực tiếp như sau:  - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

rong.

đó hệ số cho phép chỉnh mức độ sắc nét của hình ảnh. Ta có thể dùng mặt nạ lọc trực tiếp như sau: Xem tại trang 47 của tài liệu.
Hìn hb là phổ của ảnh trong hình a ,c là kết quả của quá trinh dịch phổ trong hình b. - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

n.

hb là phổ của ảnh trong hình a ,c là kết quả của quá trinh dịch phổ trong hình b Xem tại trang 51 của tài liệu.
Trên là hình các bộ lọc có cùng kích thước 500 500, ngưỡng cắt là Do=50. Ta có một nhận xét là độ dốc của bộ lọc Gauss thấp nhất, tại ví trí ngưỡng cắt Do biên độ giảm còn 60,7% so  với  giá trị lớn nhất là 1, bộ lọc Butterworth có thể xem là sự chuyển ti - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

r.

ên là hình các bộ lọc có cùng kích thước 500 500, ngưỡng cắt là Do=50. Ta có một nhận xét là độ dốc của bộ lọc Gauss thấp nhất, tại ví trí ngưỡng cắt Do biên độ giảm còn 60,7% so với giá trị lớn nhất là 1, bộ lọc Butterworth có thể xem là sự chuyển ti Xem tại trang 56 của tài liệu.
Nếu tín hiệu hình ảnh là tín hiệu tuần hoàn, chúng ta có thể có ảnh bị ảnh hưởng bởi nhiễu tuần hoàn - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

u.

tín hiệu hình ảnh là tín hiệu tuần hoàn, chúng ta có thể có ảnh bị ảnh hưởng bởi nhiễu tuần hoàn Xem tại trang 63 của tài liệu.
Có thể được mô hình bằng cách nhân các giá trị ngẫu nhiên với giá trị của các pixel. Nhiễu Speckle là vấn đề quan tâm chủ yếu trong các ứng dụng radar  - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

th.

ể được mô hình bằng cách nhân các giá trị ngẫu nhiên với giá trị của các pixel. Nhiễu Speckle là vấn đề quan tâm chủ yếu trong các ứng dụng radar Xem tại trang 63 của tài liệu.
2) Bộ lọc trung bình hình học (Geometric Mean filter): - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

2.

Bộ lọc trung bình hình học (Geometric Mean filter): Xem tại trang 64 của tài liệu.
Bộ tách biên Sobel sử dụng các mặt nạ trong hình dưới để xấp xỉ đạo hàm bậc nhất Gx và - Matlab, ứng dụng hỗ trợ cho môn xử lý ảnh

t.

ách biên Sobel sử dụng các mặt nạ trong hình dưới để xấp xỉ đạo hàm bậc nhất Gx và Xem tại trang 77 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan