Untitled ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT & TT –––––––––––––––––––––––– VŨ HOÀNG NAM MỘT SỐ TÍNH CHẤT NỘI SUY ẢNH SỐ SỬ DỤNG PHÉP TOÁN HÌNH THÁI VÀ ỨNG DỤNG PHÉP LỌC HÌNH THÁI HỌC ĐỂ NÂNG CAO C[.]
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT & TT –––––––––––––––––––––––– VŨ HỒNG NAM MỘT SỐ TÍNH CHẤT NỘI SUY ẢNH SỐ SỬ DỤNG PHÉP TỐN HÌNH THÁI VÀ ỨNG DỤNG PHÉP LỌC HÌNH THÁI HỌC ĐỂ NÂNG CAO CHẤT LƯỢNG ẢNH TÀI LIỆU KÉM CHẤT LƯỢNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN- 2020 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT & TT ––––––––––––––––––––– VŨ HỒNG NAM MỘT SỐ TÍNH CHẤT NỘI SUY ẢNH SỐ SỬ DỤNG PHÉP TỐN HÌNH THÁI VÀ ỨNG DỤNG PHÉP LỌC HÌNH THÁI HỌC ĐỂ NÂNG CAO CHẤT LƯỢNG ẢNH TÀI LIỆU KÉM CHẤT LƯỢNG Chuyên ngành: Khoa học máy tính Mã số: 8.48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS NGÔ QUỐC TẠO THÁI NGUYÊN- 2020 i LỜI CAM ĐOAN Tên tơi là: Vũ Hồng Nam Sinh ngày: 08/12/1990 Học viên lớp CHK17A - Trường Đại học Công nghệ thông tin truyền thông - Đại học Thái Nguyên Hiện công tác Trung tâm Giáo dục quốc phòng an ninh - Đại học Thái Nguyên Tác giả xin cam đoan kết nghiên cứu trình bày luận văn“Một số tính chất nội suy ảnh số sử dụng phép tốn hình thái ứng dụng phép lọc hình thái học để nâng cao chất lượng ảnh tài liệu chất lượng”do PGS.TS Ngô Quốc Tạo hướng dẫn hoàn toàn trung thực tác giả, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tác giả hoàn toàn chịu trách nhiệm trước pháp luật Tác giả luận văn Vũ Hoàng Nam ii LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành, biết ơn sâu sắc tới PGS TS Ngô Quốc Tạo - người trực tiếp hướng dẫn định hướng giúp em nhanh chóng tiếp cận, nắm bắt kiến thức hoàn thành luận văn Em xin gửi lời cảm ơn tới thầy cô giáo trường Đại học Công nghệ thông tin truyền thông Đại học Thái Nguyên, giảng dạy chỉ bảo em hai năm học vừa qua Qua đây, tác giả xin gửi lời cảm ơn đến người thân gia đình, bạn bè, đồng nghiệp động viên tạo điều kiện giúp tác giả hoàn thành nhiệm vụ học tập Thái Nguyên, ngày 25 tháng năm 2020 Học viên Vũ Hoàng Nam iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC KÍ HIỆU, CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC HÌNH vi LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ PHÉP TỐN HÌNH THÁI 1.1 Xử lý ảnh 1.2 Quá trình xử lý ảnh 1.3 Các vấn đề xử lý ảnh 1.3.1 Một số khái niệm 1.3.2 Nắn chỉnh biến dạng 1.3.3 Khử nhiễu 1.3.4 Chỉnh mức xám 1.3.5 Trích chọn đặc điểm 1.3.6 Nhận dạng 1.3.7 Nén ảnh 1.4 Thu nhận biểu diễn ảnh 10 1.4.1 Thu nhận, thiết bị thu nhận ảnh 10 1.4.2 Biểu diễn ảnh 10 1.5 Một số phương pháp nâng cao chất lượng ảnh 10 1.6 Các khái niệm phép tốn hình thái Morphology 11 CHƯƠNG 2: MỘT SỐ TÍNH CHẤT NỘI SUY CỦA PHÉP TỐN HÌNH THÁI HỌC 13 2.1 Các phép tốn hình thái học 13 iv 2.1.1 Các phép tốn hình thái học ảnh nhị phân 13 2.1.2 Các phép tốn hình thái học ảnh xám 16 2.1.3 Các phép tốn hình thái học ảnh màu 22 2.1.3.1 Hình thái học dựa biểu đồ đồng 22 2.1.3.2 Hình thái học dựa biểu đồ làm mịn 24 2.1.3.3 Hình thái học cho loại hình ảnh tương tự 26 2.2 Các tính chất nội suy phép tốn hình thái học 26 2.3 Các phép lọc hình thái học ứng dụng cho ảnh OCR 28 2.3.1 Mơ hình ảnh tài liệu chất lượng 28 2.3.2 Lọc hình thái học 30 2.3.2.1 Tốn tử hình thái không gian đồ thị 30 2.3.2.2 Tốn tử hình thái phức hợp đơn giản 31 2.3.2.3 Bộ lọc đóng mở khu vực hình thái 35 CHƯƠNG 3: THỬ NGHIỆM PHÉP LỌC HÌNH THÁI HỌC ỨNGDỤNG CHO ẢNH TÀI LIỆU KÉM CHẤT LƯỢNG 37 3.1 Thiết kế mơ hình thử nghiệm 37 3.2 Phép tốn hình thái 37 3.3 Loại bỏ nhiễu để làm rõ đối tượng 38 3.4 Làm rõ điểm bất thường 40 3.5 Kết hợp phép tốn hình thái để khử nhiễu ảnh 41 KẾT LUẬN 45 TÀI LIỆU THAM KHẢO 46 PHỤ LỤC 47 v DANH MỤC KÍ HIỆU, CÁC CHỮ VIẾT TẮT Chữ viết tắt Ý nghĩa, dạng viết đầy đủ OCR Nhận dạng ký tự quang học (Optical Character Recognition) MSE sai số toàn phương trung bình (Mean squared error) PSNR Tỉ số tín hiệu cực đại nhiễu (peak signal-to-noise ratio) vi DANH MỤC CÁC HÌNH Hình 1.1 Sơ đồ q trình xử lý ảnh Hình 1.2 Ảnh thu nhận ảnh mong muốn Hình 3.1 Minh họa phép tốn hình thái 38 Hình 3.2 Làm rõ đối tượng tiền cảnh 39 Hình 3.3 Làm rõ điểm bất thường 41 Hình 3.4 Khử nhiễu ảnh 42 Hình 3.5 Khử nhiễu ảnh OCR 43 LỜI MỞ ĐẦU Đặt vấn đề Hình ảnh sống dạng liệu đóng vai trị quan trọng việc lưu giữ, xử lý trao đổi thông tin Với thời đại 4.0 nhu cầu lưu trữ xử lý tài liệu, văn bản, vẽ kỹ thuật,… dạng hình ảnh scan dạng ảnh nhu cầu cần thiết Tuy nhiên, hình ảnh scan chụp thu nhiều lý bị nhiễu, mờ nhịe, đứt nét khơng rõ ràng… dẫn đến việc thu nhận thông tin xử lý gặp nhiều khó khăn Vì việc khắc phục nhược điểm hình ảnh thu nhận việc làm cấp thiết Trên giới Việt Nam có nhiều kỹ thuật đưa ra, có xử lý ảnh Các phép tốn hình thái ảnh cung cấp cho mô tả định lượng cấu trúc hình dạng hình học đối tượng ảnh ứng dụng rộng rãi việc nâng cao chất lượng ảnh, phân đoạn ảnh, kiểm tra khuyết điểm ảnh,… Trong luận văn tác giả nghiên cứu: “Một số tính chất nội suy ảnh số sử dụng phép tốn hình thái ứng dụng phép lọc hình thái học để nâng cao chất lượng ảnh tài liệu chất lượng” Đối tượng phạm vi nghiên cứu Luận văn tập trung khảo sát đối tượng liên quan đến phép tốn hình thái: - Lý thuyết xử lý ảnh; - Các phép tốn hình thái - Tính chất nội suy phép tốn hình thái Hướng nghiên cứu đề tài - Nghiên cứu lý thuyết liên quan đến đề tài: Quá trình xử lý ảnh, vấn đề xử lý ảnh, phép tốn hình thái, tính chất nội suy phép tốn hình thái - Cài đặt thử nghiệm phép tốn hình thái học ứng dụng cho ảnh tài liệu chất lượng Cấu trúc luận văn nội dung nghiên cứu Cấu trúc luận văn gồm: - Phần mở đầu - Chương 1, - Phần kết luận đề nghị - Tài liệu tham khảo - Phụ lục Nội dung luận văn: Chương 1: Tổng quan xử lý ảnh phép tốn hình thái: Tại chương tác giả nghiêm cứu khái niệm xử lý ảnh, trình xử lý ảnh khái niệm phép tốn hình thái Morphology Chương 2: Một số tính chất nội suy phép tốn hình thái học: Chương tác giả trình bày phép tốn hình thái học ảnh xám, ảnh màu tính chất nội suy phép tốn hình thái học Tiếp theo trình bày phép lọc hình thái học cho ảnh OCR Chương 3: Chương trình thử nghiệm phép lọc hình thái học ứng dụng cho ảnh tài liệu chất lượng: Chương trình bày sơ đồ chương trình, thử nghiệm phép lọc hình thái đánh giá MSE đánh giá PSNR Phương pháp nghiên cứu Trong luận văn học viên sử dụng phương pháp nghiên cứu sau: - Nghiên cứu lý thuyết: Tổng hợp tài liệu, hệ thống lại kiến thức, tìm hiểu khái niệm, thuật toán sử dụng đề tài - Lấy ý kiến chuyên gia - Lập trình thử nghiệm 43 Hình b Hình c Hình 3.5 Khử nhiễu ảnh OCR 44 Có thể thấy, hình ảnh kết thu rõ bị loại bỏ nhiễu ảnh Áp dụng cơng thức MSE PSNR ta có kết thử nghiệm thống kê bảng sau Bảng 3.1 Kết thử nghiệm Thử nghiệm MSE PSNR 3.2 8310.4535 8.9346 3.3 403.9604 22.0674 3.4 5000.0589 11.1411 3.5.a 1528.7836 16.2873 3.5.b 2124.3791 14.8585 3.5.c 1340.3215 16.8587 Kết thử nghiệm bảng 3.1 cho thấy nội dung ảnh sau nâng cao chất lượng ảnh gần không thay đổi, đặc biệt thử nghiệm với ảnh OCR, ngoại trừ phần tử ảnh nhiễu nhỏ Trong số thử nghiệm, thử nghiệm 3.2 có kết nhất, thử nghiệm 3.3 cho kết tốt Ngoài ra, ba kết thử nghiệm cuối với ảnh OCR cho kết tương đối ổn định với liệu khác giá trị PSNR thay đổi không nhiều (sai khác ~2) 45 KẾT LUẬN Kết đạt - Nghiên cứu tổng quan xử lý ảnh phép tốn hình thái: Khái niệm xử lý ảnh, q trình xử lý ảnh khái niệm phép tốn hình thái học; Một số tính chất nội suy phép tốn hình thái học: Trên ảnh xám, ảnh màu nêu tính chất nội suy phép tốn hình thái học phép lọc hình thái học cho ảnh OCR - Xây dựng chương trình thử nghiệm phép lọc hình thái học ứng dụng cho ảnh tài liệu chất lượng: cài đặt thử nghiệm phép lọc hình thái đánh giá MSE Hướng phát triển - Tối ưu thuật toán để cải thiện tốc độ chất lượng ảnh - Căn vào đánh giá MSE PSNR để điều chỉnh tham số cho thuật toán 46 TÀI LIỆU THAM KHẢO A TIẾNG VIỆT [1] Nguyễn Xuân Vinh (2010), Phép tốn hình thái học, Luận văn khoa học Thạc sỹ công nghệ thông tin, Khoa Công nghệ thông tin – Đại học Thái Nguyên B TIẾNG ANH [2] Dr Pierre Soille(2004), Morphological Image Analysis - Principles and Applications, Springer-Verlag Berlin Heidelberg [3] Laurent Najman, Hugues Talbot (2010), Mathematical Morphology- From Theory to Applications, Wiley-ISTE [4].Xaro Benavent, Esther Dura, Francisco Vegara, and Juan Domingo (2012), Mathematical Morphology for Color Images: An Image-Dependent Approach, Mathematical Problems in Engineering, pp 1-18 [5].Charles Jacobs, Patrice Y Simard, Paul Viola, and James Rinker (2005),Text Recognition of Low-resolution Document Images, Eighth International Conference on Document Analysis and Recognition (ICDAR'05), Seoul, South Korea, pp 695-699 [6] Aditya Challa, Sravan Danda, B S Daya Sagar, Laurent Najman (2018), Some Properties of Interpolations Using Mathematical Morphology, IEEE Transactions on Image Processing, vol 27, no 4, pp 2038-2048 [7] Dias F., Cousty J., Najman L (2011), Some Morphological Operators on Simplicial Complex Spaces, Proceedings of the 16 th IAPR international conference on Discrete geometry for computer imagery, pp 441–452 47 PHỤ LỤC Một số hàm Matlab dùng xử lý ảnh imerode imerode(I, SE) xóa bỏ thang màu xám, nhị phân hình ảnh nhị phân đóng gói I, trả lại hình ảnh bị xói mịn SE đối tượng phần tử có cấu trúc mảng đối tượng phần tử có cấu trúc, trả hàm strel offsetstrel imdilate imdilate(I, SE) làm giãn màu xám, nhị phân hình ảnh nhị phân đóng gói I, trả hình ảnh làm giãn SE đối tượng phần tử có cấu trúc mảng đối tượng phần tử có cấu trúc, trả hàm strel offsetstrel imopen imopen(I, SE) thực mở hình thái thang độ xám hình ảnh nhị phân I, trả hình ảnh mở SE đối tượng phần tử có cấu trúc đơn trả hàm strel offsetstrel Hoạt động mở hình thái xói mịn theo sau giãn nở, sử dụng phần tử cấu trúc cho hai hoạt động imclose imclose(I, SE) thực đóng hình thái thang màu xám hình ảnh nhị phân I, trả hình ảnh đóng SE đối tượng phần tử có cấu trúc đơn trả hàm strel offsetstrel Hoạt động đóng theo hình thái học giãn nở theo sau xói mịn, sử dụng phần tử cấu trúc cho hai hoạt động imtophat imtophat(I, SE) thực lọc top-hat hình thái thang độ xám hình ảnh nhị phân I, trả hình ảnh lọc Top-hat filter tính tốn độ mở hình thái hình ảnh (sử dụng imopen) sau lấy kết trừ kết ban đầu hình ảnh SE đối 48 tượng phần tử có cấu trúc đơn trả hàm strel offsetstrel imbothat imbothat(I, SE) thực lọc mũ đáy hình thái thang độ xám hình ảnh nhị phân I, trả hình ảnh lọc Lọc mũ đáy tính tốn việc đóng hình thái hình ảnh (sử dụng imclose) sau trừ hình ảnh gốc khỏi kết SE đối tượng phần tử có cấu trúc đơn trả hàm strel offsetstrel immse Immse(X, Y) tính tốn sai số trung bình (MSE) mảng X Y Mã nguồn Phần trình bày mã nguồn xây dựng chương trình thử nghiệm * Phép tốn hình thái f1=double(imread('lena512.bmp')); f=f1(:,:,1); subplot(2,3,1); imshow(uint8(f)); title('Original image'); [x,y]=size(f); p=zeros(x,y);p2=zeros(x,y);p12=zeros(x,y);p13=zeros( x,y); %Phép toán Dilation w=[1 1; 1 1; 1 1]; for s=2:x-2 for t=2:y-2 49 w1=[f(s-1,t-1)*w(1) f(s-1,t)*w(2) f(s1,t+1)*w(3) f(s,t-1)*w(4) f(s,t)*w(5) f(s,t+1)*w(6) f(s+1,t-1)*w(7) f(s+1,t)*w(8) f(s+1,t+1)*w(9)]; p(s,t)=max(w1); end end subplot(2,3,2); imshow(uint8(p)); title('Dilated image'); %Phép toán Erosion w=[1 1; 1 1; 1 1]; for s=2:x-1 for t=2:y-1 w12=[f(s-1,t-1)*w(1) f(s-1,t)*w(2) f(s1,t+1)*w(3) f(s,t-1)*w(4) f(s,t)*w(5) f(s,t+1)*w(6) f(s+1,t-1)*w(7) f(s+1,t)*w(8) f(s+1,t+1)*w(9)]; p1(s,t)=min(w12); end end subplot(2,3,3); imshow(uint8(p1)); title('Eroded image'); %Phép toán Opening [m,n]=size(p); w=[1 1; 1 1; 1 1]; for s=2:m-1 for t=2:n-1 50 w13=[p(s-1,t-1)*w(1) p(s-1,t)*w(2) p(s1,t+1)*w(3) p(s,t-1)*w(4) p(s,t)*w(5) p(s,t+1)*w(6) p(s+1,t-1)*w(7) p(s+1,t)*w(8) p(s+1,t+1)*w(9)]; p12(s,t)=min(w13); end end subplot(2,3,4); imshow(uint8(p12)); title('opening of image'); %Phép toán Closing [r,c]=size(p1); w=[1 1; 1 1; 1 1]; for s=2:r-1 for t=2:c-1 w14=[p1(s-1,t-1)*w(1) p1(s-1,t)*w(2) p1(s1,t+1)*w(3) p1(s,t-1)*w(4) p1(s,t)*w(5) p1(s,t+1)*w(6) p1(s+1,t-1)*w(7) p1(s+1,t)*w(8) p1(s+1,t+1)*w(9)]; p13(s,t)=min(w14); end end subplot(2,3,5); imshow(uint8(p13)); title('Closing of image'); * Loại bỏ nhiễu để làm rõ đối tượng axes(handles.axes2); se = strel('disk',15); background = imopen(I,se);%I ảnh gốc I2 = I - background; 51 I3 = imadjust(rgb2gray(I2)); bw = imbinarize(I3); bw = bwareaopen(bw,50); imshow(imlocalbrighten(double(bw),0.6)); F = getframe(handles.axes2); Image2 = frame2im(F); err = immse(Image1,Image2); str1= sprintf('The MSE is %0.4f', err); str2= sprintf('The PSNR is %0.4f', 10*log10(255*255/err)); str3=sprintf('%s %s',str1,str2); handles.edit1.String = str3; * Làm rõ điểm bất thường R=I(:,:,1); G=I(:,:,2); B=I(:,:,3); se=strel('disk',5); C=imbothat(G,se); %lọc hình thái se=strel('disk',8); H=imtophat(G,se);%lọc hình thái tmp=im2bw(H-C,.2); imshow(I);hold on; F = getframe(handles.axes2); Image1 = frame2im(F); u=contour(tmp,'b'); F = getframe(handles.axes2); Image2 = frame2im(F); err = immse(Image1,Image2); str1= sprintf('The MSE is %0.4f', err); 52 str2= sprintf('The PSNR is %0.4f', 10*log10(255*255/err)); str3=sprintf('%s %s',str1,str2); handles.edit1.String = str3; * Kết hợp phép tốn hình thái để khử nhiễu ảnh function J = bwsmooth( I, params ) params = parameter_set( params ); D = bw2dist( I, params ); D = smooth_dist( D, params ); J = dist2bw( D, params ); end function params = parameter_set( params_ ) params.bz_thresh = 0; params.as_scale = 1; names = fieldnames( params_ ); for i = 1:length( names ) name = names{ i }; params = setfield( params, name, getfield( params_, name ) ); end end function D = bw2dist( B, params ) B_posi = B > 0; % char B_nega = ~B_posi; % bg D = bwdist( bwperim( B_posi ), 'quasi-euclidean' ); D_posi = B_posi * D; D_nega = -(B_nega * D); D = D_posi + D_nega; end 53 function D_ = smooth_dist( D, params ) nite = 30; % number of iterations wsize = 5; % window size of gaussian function wsigma = 1.5; % standard deviation enhance = 20; % enchancement degree (enhance > 0) dt = 0.25; % time step scale = params.as_scale; D_ = imresize( D, scale, 'cubic' ); D_= impdevec(D_, wsize, wsigma, enhance, dt, nite); D_ = imresize( D_, size(D), 'cubic' ); if params.debug figure(1001), imshow( 1./ (1 + exp(-0.1*[D, D_]))); title( 'Smoothing for a distance image before (left) and after (right)' ); DD = [D, D_]; DD( DD>0 ) = 0; DD = -DD; DD = exp( -DD/ ); figure(1002), imagesc( DD ); axis image; title( 'before / after with color enhancement for displaying'); end end function B = dist2bw( D, params ) thresh = params.bz_thresh; B = D > thresh; end function J = impdevec( I, wsize, wsigma, enhance, dt, nIter ) 54 [sy, sx, sc] = size(I); J = I; Hx = 0.5 * [ -1, 0, ]; Hy = Hx'; Hxx = [ -2 ]; Hyy = Hxx'; Hxy = 0.25 * [ -1; 0 0; -1 ]; K = fspecial( 'gaussian', wsize, wsigma ); for iItr = 1:nIter [Ix, Iy] = gradient_( J, Hx, Hy ); [G11, G12, G21, G22] = structure_tensor( Ix, Iy, K ); [R_min, R_max, Vx, Vy] = gradv( G11, G12, G21, G22 ); r_std = enhance / ( std( sqrt( R_min( : ) ) ) + eps(1) ); R_min = r_std * R_min; R_max = r_std * R_max; R2 = / ( + R_min + R_max ); R1 = sqrt( R2 ); [D11, D12, D21, D22] = diffusion_tensor( R1, R2, Vx, Vy, sc ); [Ixx, Ixy, Iyx, Iyy ] = hessian_( J, Hxx, Hxy, Hyy ); DH = ( D11 * Ixx + D12 * Ixy ) + ( D21 * Iyx + D22 * Iyy ); J = J + dt * DH; end end 55 function [Ix, Iy] = gradient_( I, Hx, Hy ) Ix = imfilter( I, Hx, 'replicate' ); Iy = imfilter( I, Hy, 'replicate' ); end function [ Ixx, Ixy, Iyx, Iyy ] = hessian_( I, Hxx, Hxy, Hyy ) Ixx = imfilter( I, Hxx, 'replicate' ); Ixy = imfilter( I, Hxy, 'replicate' ); Iyx = Ixy; Iyy = imfilter( I, Hyy, 'replicate' ); end function [G11, G12, G21, G22] = structure_tensor( Ix, Iy, K ) G11 = sum( Ix.*Ix, ); G12 = sum( Ix.*Iy, ); G22 = sum( Iy.*Iy, ); G11 = imfilter( G11, K, 'replicate' ); G12 = imfilter( G12, K, 'replicate' ); G21 = G12; G22 = imfilter( G22, K, 'replicate' ); end function [ D11, D12, D21, D22 ] = diffusion_tensor( R1, R2, Vx, Vy, sc ) D11 = R2 * Vx.*Vx + R1 * Vy.*Vy; D12 = R2 * Vx.*Vy - R1 * Vy.*Vx; D22 = R2 * Vy.*Vy + R1 * Vx.*Vx; D11 = repmat( D11, [ 1 sc ] ); D12 = repmat( D12, [ 1 sc ] ); D21 = D12; 56 D22 = repmat( D22, [ 1 sc ] ); end function [ R_min, R_max, Vx, Vy ] = gradv( G11, G12, G21, G22 ) a = G11 + G22; b = G11 - G22; c = G12 * G21; d = sqrt( b.^2 + * c ); R_min = 0.5 * ( a - d ); R_max = 0.5 * ( a + d ); R_min = max( R_min, ); R_max = max( R_max, ); t_max = atan2( R_max - G11, G12 ); Vx = cos( t_max ); Vy = sin( t_max ); end fname = 'exam1.bmp'; I = imread(fname); imshow( I ); B = I > 0; B = B(:,:,1); params.bz_thresh = -0; params.as_scale = 1/4; params.debug = 1; % show all figures B_our = bwsmooth(B,params); figure(1), imshow( [B, B_our] ); title( 'Original binarized image (Left) and Smoothed image (Right)' ); 57 SE = strel('square',4); figure(3), imshow(B_our); a= imopen(imcomplement(B_our), SE); figure(4), imshow(imcomplement(a)); a=imdilate(a,SE); figure(5), imshow(imcomplement(a)); IM2=I(:,:,[1 1]); IM3=a(:,:,[1 1]); I2=im2uint8(IM2); I3=im2uint8(IM3); err = immse(I2,I3); str1= sprintf('The MSE is %0.4f', err); str2= sprintf('The PSNR is %0.4f', 10*log10(255*255/err)); str3=sprintf('%s %s',str1,str2); handles.edit1.String = str3;