Sobel边缘检测算法:

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

Sobel卷积因子为:

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

具体计算如下:

Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)

+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)

+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)

= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]

Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)

+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)

+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)

= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]

其中f(a,b), 表示图像(a,b)点的灰度值;

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

通常,为了提高效率 使用不开平方的近似值:

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

然后可用以下公式计算梯度方向:

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

实验代码:

y = filter(b,a,X)  函数法:

Y = filter2(h,X,shape) returnsthe part of Y specified by the shape parameter. shape isa string with one of these values:

'full'

Returns the full two-dimensional correlation. In thiscase, Y is larger than X.

'same'

(default) Returns the central part of the correlation.In this case, Y is the same size as X.

'valid'

Returns only those parts of the correlation that arecomputed without zero-padded edges. In this case, Y issmaller than X.

代码:

I=imread('lena.jpg');

subplot(2,2,1);
imshow(I);
title('原图像');
Gx=[-1 -2 -1;0 0 0;1 2 1];
Gy=Gx';
GIx=filter2(Gx,I,'same');%  same 是代表图像边缘的像素怎么处理,
GIx=abs(GIx);
subplot(2,2,2);
imshow(GIx);
title('x方向的梯度');
GIy=filter2(Gy,I,'same');
GIy=abs(GIy);
subplot(2,2,3);
imshow(GIy);
title('y方向的梯度');
G=GIx+GIy;
subplot(2,2,4);
imshow(G,[]);
title('图像的sobel梯度');


代码的详细过程:

I=imread('lena.jpg');

subplot(2,2,1);
imshow(I);
title('原图像');
Gx=[-1 -2 -1;0 0 0;1 2 1];
Gy=Gx';
[m n]=size(I);
I1=zeros(m,n);
for i=2:m-1
    for j=2:n-1
      for k=-1:1
          for p=-1:1
              I1(i,j)= I1(i,j)+I(i+k,j+p)*Gx(k+2,p+2);

end
      end
    end
end
subplot(2,2,2);
imshow(I1,[]);
title('x方向');
%%
[m n]=size(I);
I2=zeros(m,n);
for i=2:m-1
    for j=2:n-1
      for k=-1:1
          for p=-1:1
              I2(i,j)= I2(i,j)+I(i+k,j+p)*Gy(k+2,p+2);
          end
      end
    end
end
subplot(2,2,3);
imshow(I2,[]);
title('y方向');
%%  sobel梯度
I3=I1+I2;
subplot(2,2,4);
imshow(I3,[])

sobel算子原理以及运用相关推荐

  1. 【Pytorch神经网络理论篇】 11 卷积网络模型+Sobel算子原理

    1 视觉角度理解卷积神经网络 1.1 卷积神经网络与生物视觉系统的关系 卷积神经网络的工作流程与生物大脑的处理视觉信号的流程相似,即:将图像从基础像素到局部信息再到整体信息的转化.大脑在对图像进行分级 ...

  2. sobel算子原理与实践

           索贝尔算子(Sobeloperator)主要用于获得数字图像的一阶梯度,是一种离散性差分算子.它是prewitt算子的改进形式,改进之处在于sobel算子认为,邻域的像素对当前像素产生的 ...

  3. sobel算子原理_「学术论文」基于Sobel算法图像边缘检测的FPGA实现

    摘要: 针对嵌入式软件无法满足数字图像实时处理速度问题,提出用硬件加速器的思想,通过FPGA实现Sobel边缘检测算法.通过乒乓操作.并行处理数据和流水线设计,大大提高算法的处理速度.采用模块的硬件设 ...

  4. sobel算子原理与实现

    一.原理: 首先介绍背景知识: 1)边缘:灰度或结构等信息的突变处,边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像. 2)边缘点:图像中具有坐标[x,y],且处在强度显著变化的位置 ...

  5. Sobel算子原理及matlab实现代码

    一.基本原理 Sobel算子使用梯度进行边缘增强,它考虑图像3×3邻域的处理. 对于图像f(x,y),取该图像的3×3的区域,如下图 x方向的偏微分定义为: y方向的偏微分定义为: 则梯度幅值为: S ...

  6. java求sobel算子代码_sobel算子原理及opencv源码实现

    sobel算子原理及opencv源码实现 简要描述 sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测. 原理 算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去 ...

  7. 灰度图像--图像增强 Robert算子、Sobel算子

    灰度图像--图像增强 Robert算子.Sobel算子         目录(?)[+] 开篇废话 图像梯度介绍 Robert算子 Sobel算子 代码 结果 总结 学习DIP第36天 转载请标明本文 ...

  8. opencv——Sobel算子与Scharr算子

    目录 算子 边缘提取与梯度 边缘提取 Sobel算子 原理 API 代码展示 结果 优化代码 结果 Scharr算子 代码 结果 算子 狭义的算子实际上是指从一个函数空间到另一个函数空间(或它自身)的 ...

  9. 【CV】Sobel算子简介

    引言 Sobel算子是一种常用的边缘检测算法,是一种离散性差分算子,用差分近似代替梯度.对x求1阶差分用来检测竖直边缘,同样的对y求1阶差分用来检测水平边缘. sobel算子对垂直和水平方向上的排列表 ...

最新文章

  1. 字符串BF和KMP匹配算法
  2. Spark详解(十):SparkShuffle机制原理分析
  3. 【Linux】29.扫描本机同一局域网内 某端口开启 的主机
  4. 机器学习集成模型学习——Boosting集成学习(四)
  5. FairMOT论文详解
  6. 地图样式自定义_用地图做数据分析,地图可视化更显高级
  7. android fota解决方案,Android智能终端FOTA方案的制作方法
  8. Gartner 如何看 RASP 和 WAF?
  9. 阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
  10. 【VRP】基于matlab禁忌搜索算法求解初始点和终点确定的取送货路径问题【含Matlab源码 1224期】
  11. webpower携手穷游,解析大数据、营销智能化与用户的关系
  12. 物联网建设,智慧城市道路智能交通解决方案
  13. heic图片如何在电脑上直接打开查看使用
  14. win10误禁用任务计划程序导致任务栏里的输入法丢失
  15. 有没有什么大学生搜题比较好用的网站或APP
  16. QQ欢乐斗地主心得体会 (三):高倍场攻略
  17. IP地址,子网掩码以及子网掩码的划分
  18. revi怎么弄插件能够使附件发生一定角度的旋转?
  19. 写的基于http协议的QQ聊天机器人
  20. Android 物联网基于WIFI tcp配网流程

热门文章

  1. linux通过platform_match()匹配platform总线上的device和driver
  2. WinCE流驱动加载的控制
  3. css中小型大写,css3 – OpenType小型大写的CSS回退
  4. Google Cloud 下一站之战略转变
  5. deep learning 作業 2.2
  6. 如何节省 1TB 图片带宽?解密极致图像压缩
  7. firewalld、netfilter、 netfilter5表5链、iptables介绍
  8. Oracle——15触发器
  9. 调用ffmpeg库编译时出现common.h:175:47: error: 'UINT64_C' was not declared in this scope
  10. SVN钩子--hook