目录
一.介绍
二.常用函数
1.开运算
2.闭运算
3.腐蚀
4.膨胀
三.代码:
四.效果
1.初始图片:
2.边缘检测
3.开运算
4.闭运算
5.膨胀
6.滤波
一.介绍
Roberts算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘走向垂直。Roberts算子边缘定位准,但是对噪声敏感。适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts算子来提取道路(智能车摄像头采集信息)。
开运算:
二.常用函数
1.开运算
I 2 = Imopen(I,SE);(开运算使图像的轮廓变得光滑,断开狭窄的连接和消除细毛刺。)
参数说明:
- I为原始图像,可以是二值或灰度图像(对应于灰度膨胀)
- SE是由strel( )函数返回的自定义或者预设的结构元素对象。
- I2为腐蚀后的输出图像。
2.闭运算
Imclose(I,SE);(闭运算在去除图像前景噪声方面有较好的应用)
参数说明:同上
3.腐蚀
I2 = Imreode(I,SE);(腐蚀能够消融物体的边界,使物体断裂)
参数说明:同上
4.膨胀
I2 = Imdilate (I,SE);(膨胀能使物体边界扩大,对图像进行二值化之后,很容易使得一个连通的物体断裂为两部分,而这会给后续的图像分析造成困扰,此时就可以借助膨胀桥接断裂的缝隙。)
参数说明:同上
5.边缘检测
三.代码:
sourcePic=imread('E:\photo\3.jpg'); %读取原图像
grayPic=mat2gray(sourcePic); %实现图像矩阵的归一化操作
[m,n]=size(grayPic);
newGrayPic=grayPic; %为保留图像的边缘一个像素
robertsNum=0; %经Roberts算子计算得到的每个像素的值
robertThreshold=0.4; %设定阈值
for j=1:m-1 %进行边界提取
for k=1:n-1
robertsNum=abs(grayPic(j,k)-grayPic(j+1,k+1))+abs(grayPic(j+1,k)-grayPic(j,k+1));
if(robertsNum > robertThreshold)
newGrayPic(j,k)=255;
else
newGrayPic(j,k)=0;
end
end
end
figure,imshow(newGrayPic);
imwrite(newGrayPic,'E:\photo\Roberts边缘检测.jpg');
se=strel('disk',1); %采用半径为1的圆作为结构元素
KAI=imopen(newGrayPic,se); %开启操作
figure,imshow(KAI);
imwrite(KAI,'E:\photo\Roberts开运算.jpg');
BI=imclose(newGrayPic,se); %闭合裂隙
figure,imshow(BI);
imwrite(BI,'E:\photo\Roberts闭运算.jpg');
PZ=imdilate(newGrayPic,se);
figure,imshow(PZ);
imwrite(PZ,'E:\photo\Roberts膨胀.jpg');
k2=medfilt2(newGrayPic,[2,2]);
figure,imshow(k2);
imwrite(k2,'E:\photo\Roberts滤波.jpg');
FS=imerode(newGrayPic,[2,2]);
figure,imshow(FS);
imwrite(FS,'E:\photo\Roberts腐蚀.jpg');