数字图像处理七:图像分割

边缘检测:采用Roberts、Prewitt、Sobel、Log、Canny算子将图像中各不同区域的边缘(边界)检测出来,以达到检测的目的。常用的一阶微分边缘检测算子模板有Roberts、Prewitt、Sobel算子。这些算子都是利用边缘处的梯度最大这一性质来进行边缘检测的,即利用了灰度图像的拐点位置是边缘的性质。
(1) Sobel算子
以待增强图像 的任意像素 为中心,取3*3像素窗口,分别计算窗口中心像素在 和 方向的梯度。增强后的图像在 处的灰度值为

用模板表示为:


(2) Prewitt算子
用模板表示为


(3) Roberts算子
Roberts模板是用斜向上的4个象素的交叉差分定义的,即

  1. 用高斯滤波器平滑图像.
  2. 用一阶偏导有限差分计算梯度幅值和方向.
  3. 对梯度幅值进行非极大值抑制.
  4. 用双阈值算法检测和连接边缘.
clc;clear;close all;
I = imread('实验图片素材\lena.bmp');
K1 = double(imnoise(I,'gaussian',0.01));
subplot(231);imshow(K1,[]);title('高斯噪声图像');

%  Roberts算子边缘检测
BW1 = edge(K1,'roberts',0.2);
subplot(232);imshow(BW1,[]);title('Roberts算子图像');
% Prewitt算子边缘检测
BW2 = edge(K1,'prewitt',0.05);
subplot(233);imshow(BW2,[]);title('Prewitt算子图像');
% Sobel算子边缘检测
BW3 = edge(K1,'sobel',0.04);
subplot(234);imshow(BW3,[]);title('Sobel算子图像');
% Log算子边缘检测
BW4 = edge(K1,'log',0.02);
subplot(235);imshow(BW4,[]);title('Log算子图像');
% Canny算子边缘检测
BW5 = edge(K1,'canny',0.04);
subplot(236);imshow(BW5,[]);title('Canny算子图像');

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年5月22日
下一篇 2022年5月22日

相关推荐