【图像处理】MATLAB:点、线、边缘检测

点检测

代码示例

f = imread('test_pattern_with_single_pixel.tif');
w = [-1 -1 -1;-1 8 -1;-1 -1 -1];                    % 点检测掩模
g = abs(imfilter(double(f),w));
T = max(g(:));
g = g>=T;
subplot(1,2,1);imshow(f);title('原图像');
subplot(1,2,2);imshow(g);title('点检测');

运行结果

【图像处理】MATLAB:点、线、边缘检测_第1张图片


线检测

【图像处理】MATLAB:点、线、边缘检测_第2张图片

代码示例

f = imread('wirebond_mask.tif');        % 图像大小:486×486
w = [2 -1 -1;-1 2 -1;-1 -1 2];          % -45°方向检测线
g = imfilter(double(f),w);
gtop = g(1:120,1:120);                  % 左上角区域
gtop = pixeldup(gtop,4);                % 通过复制像素将图像扩大gtop*4倍
gbot = g(end-119:end,end-119:end);      % 右下角区域
gbot = pixeldup(gbot,4);
g1 = abs(g);                             % 检测图的绝对值
T = max(g1(:));
g2 = g1>=T;

subplot(3,2,1);imshow(f);title('原图像');
subplot(3,2,2);imshow(g,[]);title('线检测-45°方向');
subplot(3,2,3);imshow(gtop,[]);title('左上角区域');
subplot(3,2,4);imshow(gbot,[]);title('右下角区域');
subplot(3,2,5);imshow(g1,[]);title('图像绝对值');
subplot(3,2,6);imshow(g2);title('g>=T');

运行结果

【图像处理】MATLAB:点、线、边缘检测_第3张图片

补充

  使用Hough变换作线检测:

  Hough变换是一种寻找并链接图像中线段的处理方式,用其进行线检测和链接的第一步是峰值检测。


边缘检测

【图像处理】MATLAB:点、线、边缘检测_第4张图片

【图像处理】MATLAB:点、线、边缘检测_第5张图片
【图像处理】MATLAB:点、线、边缘检测_第6张图片
【图像处理】MATLAB:点、线、边缘检测_第7张图片

【图像处理】MATLAB:点、线、边缘检测_第8张图片

【图像处理】MATLAB:点、线、边缘检测_第9张图片

【图像处理】MATLAB:点、线、边缘检测_第10张图片

【图像处理】MATLAB:点、线、边缘检测_第11张图片

代码示例

f = imread('bld.tif');
[g_sobel_default,ts] = edge(f,'sobel');
[g_log_default,tlog] = edge(f,'log');
[g_canny_default,tc] = edge(f,'canny');

g_sobel_best = edge(f,'sobel',0.05);
g_log_best = edge(f,'log',0.003,2.25);
g_canny_best = edge(f,'canny',[0.04 0.10],1.5);

subplot(3,2,1);imshow(g_sobel_default);title('默认sobel');
subplot(3,2,2);imshow(g_sobel_best);title('默认log');
subplot(3,2,3);imshow(g_log_default);title('默认canny');
subplot(3,2,4);imshow(g_log_best);title('最佳sobel');
subplot(3,2,5);imshow(g_canny_default);title('最佳log');
subplot(3,2,6);imshow(g_canny_best);title('最佳canny');

运行结果

【图像处理】MATLAB:点、线、边缘检测_第12张图片

【图像处理】MATLAB:点、线、边缘检测_第13张图片


你可能感兴趣的:(图像处理,图像处理,MATLAB)