Roberts边缘检测算子
2016-06-29 22:04
225 查看
Roberts提出了这种寻找边缘的算子。Roberts边缘算子是一个2x2的模板,采用的是对角方向相邻的两个像素之差。从图像处理的实际效果来看,边缘定位较准,对噪声敏感
clear all;
sourcePic=imread('9.jpg'); %读取原图像
grayPic=rgb2gray(sourcePic); %转换成灰度图像
subplot(131);imshow(grayPic);title('原图');
[high,width]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
robertsNum=0; %经roberts算子计算得到的每个像素的值
robertThreshold=0.9; %设定阈值
for j=1:high-1 %进行边界提取
for k=1:width-1
robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1));
newGrayPic(j,k)=robertsNum;
end
end
subplot(132);imshow(newGrayPic);title('roberts算子的处理结果');
% Matlab自带函数边缘检测
% K为获取得到的关键帧的灰度图
BW3 = edge(grayPic,'roberts', 0.03);
subplot(133);imshow(BW3,[]);title('Matlab自带函数边缘检测');
clear all;
sourcePic=imread('9.jpg'); %读取原图像
grayPic=rgb2gray(sourcePic); %转换成灰度图像
subplot(131);imshow(grayPic);title('原图');
[high,width]=size(grayPic);
newGrayPic=grayPic;%为保留图像的边缘一个像素
robertsNum=0; %经roberts算子计算得到的每个像素的值
robertThreshold=0.9; %设定阈值
for j=1:high-1 %进行边界提取
for k=1:width-1
robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1));
newGrayPic(j,k)=robertsNum;
end
end
subplot(132);imshow(newGrayPic);title('roberts算子的处理结果');
% Matlab自带函数边缘检测
% K为获取得到的关键帧的灰度图
BW3 = edge(grayPic,'roberts', 0.03);
subplot(133);imshow(BW3,[]);title('Matlab自带函数边缘检测');
相关文章推荐
- 283. Move Zeroes
- ui-router入门(精简)
- winform Anchor和Dock属性
- ubuntu 14.04.4 安装cuda-7.5
- 算法之 排序算法 (一) Java
- JavaScript 浏览器对象(三)
- 剑指offer-3-面试题11:数值的整数次方(对错误的处理)
- php解决百钱买百鸡问题、过路口问题以及打印九成九乘法表
- java--数据结构--二叉树遍历
- iOS 实现第三方登录(图文)
- 全国行政区域数据库
- ListView数据显示动画
- Asp.net生命周期
- 内部エラー -選択したファイルは変更できないシステムファイルです。これは表示されません
- CSS3自定义radio
- 关于P问题,NP问题和NPC问题
- 《生成树选举口诀》【转载】
- android项目中实现百度地图中点聚合功能
- 鼠标停留变换颜色(以颜色为例)的2种方法
- [2.5]详解spark sql用户自定义函数:UDF与UDAF