空间滤波(四) sobel 算子

来源:互联网 发布:windows防火墙允许ip 编辑:程序博客网 时间:2024/05/02 02:40
ori_img=imread('C:\Program Files\MATLAB\R2013a\bin\Original_Images\DIP3E_Original_Images_CH03\Fig0342(a)(contact_lens_original).tif');ori_img=mat2gray(ori_img); % 归一化 转化为double sobel_v=double([1,2,1;0,0,0;-1,-2,-1]); %Sobel operator 3x3 convolution kernels% 垂直 Sobel_v   kron([1,0,-1]',[1,2,1])sob_v_img=conv2(ori_img,sobel_v,'same');% sob_v_img=mat2gray(sob_v_img);figure,imshow(sob_v_img,[]),title('sobel vetical img');sobel_h=double([1,0,-1;2,0,-2;1,0,-1]); %Sobel operator 3x3 convolution kernelssob_h_img=conv2(ori_img,sobel_h,'same');% sob_h_img=mat2gray(sob_h_img);figure,imshow(sob_h_img,[]),title('sobel Hor img');sob_img=abs(sob_h_img)+abs(sob_v_img);figure,imshow(sob_img,[]),title('sobel img')  % 归一化%  水平 sobel_h   kron([1,2,1]',[1,0,-1])
%sobel_h=double([-3,0,3;-10,0,10;-3,0,3]);    %更准确% sobel_v=doubel([-3,-10,-1;0,0,0;3,10,3]);    %更准确%由于sobel%是一个近似算符,故总会有误差,这里用一个更准确的计算 具体细节请参考learning opencv by%Bradski and Kaehler  in the OpenCV reference (Scharr)

最下面这张是隐形眼镜原图,网站不能上传tif 图像我在这里截了一张图。因时间有限不能翻译原文,请见谅。
分析:请注意 图片中四 、五 点钟方向上的缺陷,本文中用梯度法(sobel 算子) 增强缺陷(显示梯度变换大的位置),消除慢变化的背景(梯度变化小的位置)的特性是非常有用的。梯度处理常用于工业检测的预处理步骤,而不用于人为分析。梯度处理还可以用于突出灰度图像中看不见的小斑点(可能是外来物、小缺陷等)。

0 0
原创粉丝点击