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