sobel算子原理以及运用
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算子原理以及运用相关推荐
- 【Pytorch神经网络理论篇】 11 卷积网络模型+Sobel算子原理
1 视觉角度理解卷积神经网络 1.1 卷积神经网络与生物视觉系统的关系 卷积神经网络的工作流程与生物大脑的处理视觉信号的流程相似,即:将图像从基础像素到局部信息再到整体信息的转化.大脑在对图像进行分级 ...
- sobel算子原理与实践
索贝尔算子(Sobeloperator)主要用于获得数字图像的一阶梯度,是一种离散性差分算子.它是prewitt算子的改进形式,改进之处在于sobel算子认为,邻域的像素对当前像素产生的 ...
- sobel算子原理_「学术论文」基于Sobel算法图像边缘检测的FPGA实现
摘要: 针对嵌入式软件无法满足数字图像实时处理速度问题,提出用硬件加速器的思想,通过FPGA实现Sobel边缘检测算法.通过乒乓操作.并行处理数据和流水线设计,大大提高算法的处理速度.采用模块的硬件设 ...
- sobel算子原理与实现
一.原理: 首先介绍背景知识: 1)边缘:灰度或结构等信息的突变处,边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像. 2)边缘点:图像中具有坐标[x,y],且处在强度显著变化的位置 ...
- Sobel算子原理及matlab实现代码
一.基本原理 Sobel算子使用梯度进行边缘增强,它考虑图像3×3邻域的处理. 对于图像f(x,y),取该图像的3×3的区域,如下图 x方向的偏微分定义为: y方向的偏微分定义为: 则梯度幅值为: S ...
- java求sobel算子代码_sobel算子原理及opencv源码实现
sobel算子原理及opencv源码实现 简要描述 sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测. 原理 算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去 ...
- 灰度图像--图像增强 Robert算子、Sobel算子
灰度图像--图像增强 Robert算子.Sobel算子 目录(?)[+] 开篇废话 图像梯度介绍 Robert算子 Sobel算子 代码 结果 总结 学习DIP第36天 转载请标明本文 ...
- opencv——Sobel算子与Scharr算子
目录 算子 边缘提取与梯度 边缘提取 Sobel算子 原理 API 代码展示 结果 优化代码 结果 Scharr算子 代码 结果 算子 狭义的算子实际上是指从一个函数空间到另一个函数空间(或它自身)的 ...
- 【CV】Sobel算子简介
引言 Sobel算子是一种常用的边缘检测算法,是一种离散性差分算子,用差分近似代替梯度.对x求1阶差分用来检测竖直边缘,同样的对y求1阶差分用来检测水平边缘. sobel算子对垂直和水平方向上的排列表 ...
最新文章
- 字符串BF和KMP匹配算法
- Spark详解(十):SparkShuffle机制原理分析
- 【Linux】29.扫描本机同一局域网内 某端口开启 的主机
- 机器学习集成模型学习——Boosting集成学习(四)
- FairMOT论文详解
- 地图样式自定义_用地图做数据分析,地图可视化更显高级
- android fota解决方案,Android智能终端FOTA方案的制作方法
- Gartner 如何看 RASP 和 WAF?
- 阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
- 【VRP】基于matlab禁忌搜索算法求解初始点和终点确定的取送货路径问题【含Matlab源码 1224期】
- webpower携手穷游,解析大数据、营销智能化与用户的关系
- 物联网建设,智慧城市道路智能交通解决方案
- heic图片如何在电脑上直接打开查看使用
- win10误禁用任务计划程序导致任务栏里的输入法丢失
- 有没有什么大学生搜题比较好用的网站或APP
- QQ欢乐斗地主心得体会 (三):高倍场攻略
- IP地址,子网掩码以及子网掩码的划分
- revi怎么弄插件能够使附件发生一定角度的旋转?
- 写的基于http协议的QQ聊天机器人
- Android 物联网基于WIFI tcp配网流程
热门文章
- linux通过platform_match()匹配platform总线上的device和driver
- WinCE流驱动加载的控制
- css中小型大写,css3 – OpenType小型大写的CSS回退
- Google Cloud 下一站之战略转变
- deep learning 作業 2.2
- 如何节省 1TB 图片带宽?解密极致图像压缩
- firewalld、netfilter、 netfilter5表5链、iptables介绍
- Oracle——15触发器
- 调用ffmpeg库编译时出现common.h:175:47: error: 'UINT64_C' was not declared in this scope
- SVN钩子--hook