Tách biên Sobel

Một phần của tài liệu BÀI báo cáo môn xử lý ẢNH đề tài ỨNG DỤNG một số PHÉP xử lý ẢNH cơ bản vào GIAO DIỆN GUI TRONG MATLAB (Trang 25)

2. CÁC PHƯƠNG PHÁP CHÍNH

2.4.1.2. Tách biên Sobel

Bộ tách biên sobel sử dụng các mặt nạ để sấp xỉ đạo hàm bậc nhất. Nói cách khác, gradient tại điểm tâm trong một lân cận được tính theo bộ tách sobel.

Cú pháp gọi bộ tách sobel tổng quát là : [ g,t ]=edge( f, ‘sobel’,T)

Trong đó f là ảnh đầu vào, T là ngưỡng được chỉ định. Như đã nói , g là ảnh logic chứa giá trị 1 và 0 tại những nơi biên được tách. Tham số t trong ngõ ra là tùy chọn. Nó là giá trị ngưỡng được dùng bởi edge. Nếu T được chỉ định thì t=T. Mặt khác nếu T không được chỉ định , f sẽ đặt t bằng với ngưỡng do nó tự động xác định và sau đó sử dụng cho việc tách biên. Hàm edge sẽ sử dụng bộ tách sobel mặc định , nếu cú pháp :

g=edge(f) hoặc là [g,t]=edge(f)

2.4.1.3. Mặt nạ bộ lọc sobel

Khái quát

Bộ lọc sobel được sử dụng nhiều trong việc tách biên của một bức ảnh. Bộ lọc này sử

dụng hai mặt nạ theo phương ngang và phương và dọc để tách biên của bức ảnh. 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à Gy. Nói cách khác, gradient tại điểm tâm trong một lân cận được tính theo bộ tách biên sobel.

Mặt nạ của bộ lọc sobel:

Công thức

Công thức tính ảnh sau khi tách biên sử dụng bộ lọc sobel:

Nhưng khi tính toán thường dùng công thức : g=|Gx|+|Gy|

Khi đó vị trí (x,y) là pixel biên nếu tại vị trí đó có giá trị g >t ( t là giá trị ngưỡng chỉ định trước).

Ví dụ

Cho một ảnh: Yêu cầu tách biên bằng bộ lọc sobel.

Đầu tiên ta xác định bộ lọc:

Sau đó dùng công thức tính từng vị trí pixel một theo bộ lọc phía trên .

Sau đó ta cộng lại theo công thức: g=|Gx|+|Gy| ta được:

Tiếp theo ta xác định vị trí pixel có phải là biên hay không theo công thức: g(x,y)>t (t là ngưỡng) thì vị trí pixel có đó có giá trị 1 ngược lại là 0.

Với ngưỡng T=(94+16)= 55

Ta được các giá trị 1 đó chính các vị trí biên của ảnh.

2.4.2 Kết quả thực hiện

2.5 ỨNG DỤNG CÁC PHÉP XỬ LÝ ẢNH VÀO GIAO DIỆN GUI TRONG MATLAB2.5.1 Giao diện các phím nhấn và khung hiển thị hình ảnh 2.5.1 Giao diện các phím nhấn và khung hiển thị hình ảnh

2.5.2 Mã lệnh(code) cho các phím nhấn

2.5.2.1 Kỹ thuật lọc ảnh bằng bộ lọc trung bình

*CODE

global im

I=0.2989*im(:,:,1) + 0.5870*im(:,:,2) + 0.1140*im(:,:,3); Isp = imnoise(I,'salt & pepper');

Ig = imnoise(I,'gaussian',0.02); C=double(Ig); B=double(Isp); A=double(I); for i=1:size(I,1)-2 for j=1:size(I,2)-2 29

I_m=(A(i,j)+A(i,j+1)+A(i,j+2)+A(i+1,j)+A(i+1,j+1)+A(i+1,j+2)+A(i+2,j) +A(i+2,j+1)+A(i+2,j+2))/9; Isp_m=(B(i,j)+B(i,j+1)+B(i,j+2)+B(i+1,j) +B(i+1,j+1)+B(i+1,j+2)+B(i+2,j)+B(i+2,j+1)+B(i+2,j+2))/9; Ig_m=(C(i,j) +C(i,j+1)+C(i,j+2)+C(i+1,j)+C(i+1,j+1)+C(i+1,j+2)+C(i+2,j)+C(i+2,j+1)+C(i+2,j+2))/9; AI_m(i,j)=(I_m); AIsp_m(i,j)=(Isp_m); AIg_m(i,j)=(Ig_m); end end axes(handles.axes1);

subplot(3,2,1), imshow(I), xlabel('BEFORE'); subplot(3,2,2), imshow(AI_m), xlabel('AFTER'); subplot(3,2,3), imshow(Isp), xlabel('BEFORE'); subplot(3,2,4), imshow(AIsp_m),xlabel('AFTER'); subplot(3,2,5), imshow(Ig), xlabel('BEFORE'); subplot(3,2,6), imshow(AIg_m), xlabel('AFTER');

*KẾT QUẢ

2.5.2.2 Kỹ thuật tách biên dùng mặt nạ Sobel

*CODE

global im

B=0.2989*im(:,:,1) + 0.5870*im(:,:,2) + 0.1140*im(:,:,3);

C=double(B); for i=1:size(C,1)-2 for j=1:size(C,2)-2 Gx=((2*C(i+2,j+1)+C(i+2,j)+C(i+2,j+2))-(2*C(i,j+1)+C(i,j)+C(i,j+2))); Gy=((2*C(i+1,j+2)+C(i,j+2)+C(i+2,j+2))-(2*C(i+1,j)+C(i,j)+C(i+2,j))); B(i,j)=sqrt(Gx.^2+Gy.^2); end end axes(handles.axes1); imshow(B); *KẾT QUẢ

3. KẾT LUẬN

Bài báo cáo đã đưa ra được nội dung sơ lược về giao diên GUI cũng như một số

phương pháp xử lý ảnh đơn giản : lọc ảnh, tách biên,… Cho ta thấy được ưu nhược điểm của từng phương pháp. Từ đó cũng thấy được phần nào tầm quan trọng của các phương pháp đó trong công nghệ xử lý ảnh nói riêng và cách mạng công nghệ 4.0 nói chung. Bên cạnh đó, chúng ta cũng cần phải tìm hiểu để khắc phục những nhược điểm cũng như ngày một cải tiến nó để công nghệ xử lý ảnh ngày càng phát triển trong cuộc sống hơn.

TÀI LIỆU THAM KHẢO

1. Chương 3, Digital Image Processing, third edition, Rafael C.Gonzalez, Richard E.Woods 2. Giáo trình xử lý ảnh, ThS Nguyễn Thanh hải, Đại Học SPKT

3. Slideshare.net, Ví dụ chi tiết giải thích lập trình Gui trong matlab

https://www.slideshare.net/phamthe1/vi-du-chi-tiet-giai-thich-lap-trinh-gui-trong-matlab. 4. Vimach.net, Matlab trong xử lý ảnh: Cơ bản ảnh Grayscale

http://www.vimach.net/threads/matlab-trong-xu-ly-anh-co-ban-anh-grayscale-part-1.186/? fbclid=IwAR2XpE6qfqNG9xTA2QPMIkWaREt3Xte-Cuf2FOyCPIAFPmr7B9ukF_GnQuc

5. Ieev.org, Từ RGB sang đa mức xám(Grayscale)

https://www.ieev.org/2011/01/chuyen-oi-hinh-dung-rgb-sang-muc-xam.html?

fbclid=IwAR1GOtaNbHPFfmsEK0zt9QPKNofUA6zemT5Zk_mNHjYtpWvi3GWwoAbu9 aw

6. kdientu.duytan.edu.vn, phương pháp giải bài toán tách biên ảnh

http://www.kdientu.duytan.edu.vn/vi-vn/hoc-lieu/phuong-phap-giai-bai-toan-tach-bien-anh/

7. Namlunoy.wordpress.com, xử lý ảnh – image processing

https://namlunoy.wordpress.com/category/xu-ly-anh-image-processing/

8. 123doc.org, kỹ thuật tách biên ảnh màu

Một phần của tài liệu BÀI báo cáo môn xử lý ẢNH đề tài ỨNG DỤNG một số PHÉP xử lý ẢNH cơ bản vào GIAO DIỆN GUI TRONG MATLAB (Trang 25)

Tải bản đầy đủ (PDF)

(35 trang)