1.2.1. Sobel算法分析

索贝尔算子(Sobel

operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量。

Sobel卷积因子为:

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

通常,为了提高效率 使用不开平方的近似值,但这样做会损失精度

如果梯度G大于某一阀值 则认为该点(x,y)为边缘点。

if(temp3 > THRESHOLD)

IMG_Sobel(i,j) =

0; %Black

else

IMG_Sobel(i,j) = 255; %White

end

然后可用以下公式计算梯度方向(当然只要检测边缘,则不用计算方向):

1.2.2. Sobel算子Matlab算法的实现

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。

Soble算子操作的是灰度图像,因此必须首先对图像进行灰度化。这一部分在第一章中详细介绍过,不再做具体分析,一下算法直接应用灰度图像。

(1)Sobel算子卷积

%

-----------------------------------------------------------------------

% Gx Gy Pixel

% [ -1 0 +1 ] [ +1 +2 +1

] [ P1 P2 P3 ]

% [ -2 0 +2 ] [ 0 0 0 ] [ P4 P5 P6 ]

% [ -1 0 +1 ] [ -1 -2 -1

] [ P7 P8 P9 ]

Sobel_X = [-1, 0, 1, -2, 0, 2, -1, 0,

1]; % Mask x

Sobel_Y = [1, 2, 1, 0, 0, 0, -1, -2,

-1]; % Mask y

(2)点对点卷积运算实现梯度的计算

IMG_Gray =

double(IMG2); %将图片转换为双精度类型

IMG_Sobel =

true(h,w); %新建一个二值矩阵

THRESHOLD =90;

for i = 2 :

h-1 %舍弃了边缘信息

for j = 2 :

w-1

temp1 = Sobel_X(1) * IMG_Gray(i-1,j-1) +

Sobel_X(2) * IMG_Gray(i-1,j) + Sobel_X(3) *

IMG_Gray(i-1,j+1) +...

Sobel_X(4) *

IMG_Gray(i,j-1) + Sobel_X(5) *

IMG_Gray(i,j) + Sobel_X(6) * IMG_Gray(i,j+1) +...

Sobel_X(7) * IMG_Gray(i+1,j-1) + Sobel_X(8) *

IMG_Gray(i+1,j) + Sobel_X(9) *

IMG_Gray(i+1,j+1);

temp2 = Sobel_Y(1) * IMG_Gray(i-1,j-1) +

Sobel_Y(2) * IMG_Gray(i-1,j) + Sobel_Y(3) *

IMG_Gray(i-1,j+1) +...

Sobel_Y(4) *

IMG_Gray(i,j-1) + Sobel_Y(5) *

IMG_Gray(i,j) + Sobel_Y(6) * IMG_Gray(i,j+1) +...

Sobel_Y(7) * IMG_Gray(i+1,j-1) + Sobel_Y(8) *

IMG_Gray(i+1,j) + Sobel_Y(9) *

IMG_Gray(i+1,j+1);

temp3 = sqrt(temp1^2 + temp2^2);

%temp3 = abs(temp1) +

abs(temp2); %just for speed

if(temp3 > THRESHOLD)

IMG_Sobel(i,j) = 0; %Black

else

IMG_Sobel(i,j) = 1; %White

end

end

end

(3)THRESHOLD为手动设定,此处为90。根据图像的质量来调节,针对于边缘检测而言,不需要进行梯度方向计算,因此直接进行梯度计算,与阀值对比,既可以实现边缘检测。

sobel的matlab实现,Sobel算法相关推荐

  1. 基于MATLAB的Sobel边缘检测算法实现

    图像边缘就是图像灰度值突变的地方,也就是图像在该部分的像素值变化速度非常之快,就比如在坐标轴上一条曲线有刚开始的平滑突然来个大转弯,在变化出的导数非常大. Sobel算子主要用作边缘检测,它是一离散型 ...

  2. 【图像处理】基于matlab边缘检测 Sobel、Roberts、Prewitt

    matlab边缘检测 Sobel.Roberts.Prewitt 一.Sobel边缘检测算法 1.算法简介 2.matlab实现 3.Sobel检测结果 二.Roberts边缘检测算法 1.算法简介 ...

  3. 基于matlab的数字图像边缘检测算法研究,基于MATLAB数字图像边缘检测算法的研究与对比分析...

    ·161· 居 舍 研究探讨 2017年10月(中) 1 绪论 图像边缘中通常包含着重要的边界信息,这些边界信息便于分析和研究图像.另外,边缘检测可以大大降低图像处 理的工作量,将提高图像分析的效率. ...

  4. 图像分形的matlab算法,基于MATLAB的图像分割算法研究

    内容介绍 原文档由会员 花季永驻 发布 基于MATLAB的图像分割算法研究 全文54页 约28000字 论述翔实 摘 要 本文从原理和应用效果上对经典的图像分割方法如边缘检测.阈值分割技术和区域增长等 ...

  5. Matlab人脸检测算法详解

    这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...

  6. matlab在电力行业中的仿真技术-MATLAB基于EKF算法估计电动汽车蓄电池的SOC

    前言 关于本文的代码请参加,有兴趣的小伙伴可自行订阅. matlab电力系统仿真-MATLAB基于EKF算法估计电动汽车蓄电池的SOC 电动汽车(EV)是未来汽车的一大发展方向.动力锂电池组是电动汽车 ...

  7. ML之RF:基于Matlab利用RF算法实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性

    ML之RF:基于Matlab利用RF算法实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性 目录 输出结果 实现代码 输出结果 更新-- 实现代码 %RF:RF实现根据乳腺肿瘤特征 ...

  8. 光谱分类算法 matlab,Matlab K-means聚类算法对多光谱遥感图像进行分类(一)

    Matlab K-means聚类算法对多光谱遥感图像进行分类 作者: 白艺亭 测试了下matlab自带kmeans函数,作者编写函数,以及ENVI下的Kmeans方法,对比其效果,代码及结果图展示见下 ...

  9. 基于MATLAB的Dijkstra算法实现及案例分析

    摘要:为研究两地点之间距离(或耗时)最短路线规划,采用MATLAB编程的方法来实现,并利用Floyd算法记录距离(或耗时)最短路线.在不考虑各种影响因素的情况下,以随机小样本数据为例进行演示,求得由起 ...

最新文章

  1. xmpp关于后台挂起的消息接收,后台消息推送,本地发送通知
  2. mariadb-10实现半同步复制及SSL安全复制
  3. Base64编码及Android的应用
  4. 机器学习 -- 信息论
  5. matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...
  6. 读书笔记-说服力 让你的PPT会说话
  7. 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
  8. 原生Hadoop集群搭建过程记录
  9. windows10恢复分区删除方法
  10. php 打印去掉页眉页脚,window.print打印 去掉页眉页脚及打印链接
  11. 2022-2028全球与中国废物转化能源市场现状及未来发展趋势
  12. 算法学习笔记:排序算法
  13. 图片识别出处_搜图神器!你还在问图片的出处吗?
  14. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用
  15. word转excel排版不变怎么转?
  16. 【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点
  17. 三、三个路由器间的互联
  18. aardio - 【库】webp图片转换
  19. 计量经济学笔记5-Eviews操作-异方差的检验与消除(White检验与加权最小二乘)
  20. 解决 ros 16.04找不到公钥的问题

热门文章

  1. 前后端分离开发之Vue跨域
  2. RestTemplate结合OkHttp3通用Rest Client客户端
  3. mysql mysqld install_mysql中,执行mysqld –install命令 、net start mysql命令出错的解决办法...
  4. java分词 词权重_直通车高分词的养词方法和整个计划权重的提升
  5. 阿里P8资深架构师耗时一年整理Java工程师成神之路
  6. Quick Notes
  7. AXURE RP EXTENSION For Chrome安装与修复
  8. 四大基本反应类型的关系_[转载]初中化学四大基本反应类型归纳
  9. Flutter Row,Column和Expanded
  10. 2012微软“创新杯”全球学生大赛启动了