目录
一.介绍
二.常用函数
1.开运算
2.闭运算
3.腐蚀
4.膨胀
三.代码:
四.效果
1.初始图片:
2.边缘检测
3.开运算
4.闭运算
5.膨胀
6.滤波
Roberts算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘走向垂直。Roberts算子边缘定位准,但是对噪声敏感。适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts算子来提取道路(智能车摄像头采集信息)。
开运算:
部分未提到的基础函数用法:请移步前两次图像处理基础函数介绍
基于MATLAB的图像处理②
I 2 = Imopen(I,SE);(开运算使图像的轮廓变得光滑,断开狭窄的连接和消除细毛刺。)
参数说明:
I 2 = Imclose(I,SE);(闭运算在去除图像前景噪声方面有较好的应用)
参数说明:同上
I2 = Imreode(I,SE);(腐蚀能够消融物体的边界,使物体断裂)
参数说明:同上
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');
欢迎评论区交流指正,您的点赞是我持续创造的动力!!!
图像边缘检测④( Sobel边缘算子,Prewitt边缘算子,Laplacian边缘算子,Canny边缘算子)