[cv基础一] 图像底层特征:轮廓与边缘

写在前面:用深度学习的方法调了一波参数,改了一波网络结构,回过头,最想做的事情,当然是好好补一补计算机视觉的基础,弥补一下对传统计算机视觉理解的薄弱部分。所以,接下来,开始补习计算机视觉的基础。供自己以后复习,看客仅供参考。

图像底层特征提取是计算机视觉的基本步骤。那么,接下来,就从what,why,how几个方面,来一一解答。

一,什么是图像底层特征?

图像底层特征指的是:轮廓和边缘。

1.边缘和轮廓能反映图像内容;

2.如果能对边缘和关键点可靠提取的话,很多视觉问题就基本上得到了解决。

 

二,边缘的物理意义

1.图像边缘的产生

物体的边界,表面方向的改变,不同的颜色,光照明暗的变化,都会产生图像边缘。如图1。

 图1

2.图像边缘的定义

-“边缘时图像中亮度突然变化的区域。”

-“图像灰度构成的曲面上的陡峭区域。“

-”像素灰度存在跃阶变化或屋脊状变化的像素的集合。”

3.图像边缘的类型

图像边缘的类型包括:阶梯状边缘,屋脊状边缘和线条状边缘。以灰度图像为例,灰度图像中边缘的类型如图2。

图2

4.为什么要提取边缘?

-边缘是最基本的图像特征之一;

-可以表达物体的特征;

-边缘特征对于图像的变化(几何变化,灰度变化,光照方向变化)不敏感;

-可以为物体检测提供有用的信息;

-是一种典型的图像预处理过程。

 

三,如何提取边缘?

对于灰度图像的边缘提取而言,主要的思想包括:

-抑制噪声(低通滤波,平滑,去噪,模糊)

-边缘特征增强(高通滤波,锐化)

-边缘定位

流程如下:

原始图像->抑制噪声 or 增强边缘 -> 中间结果 -> 边缘定位 -> 图像边缘

具体来说,也就是通过图像微分算子来实现。

包括:

-一阶微分算子(梯度算子,prewitt, sobel),通过检测最大值来实现;

-二阶微分算子(laplacian),通过检测过零点来实现。

 

个人体会:边缘定位->通过计算图像梯度来实现->近似一节微分运算->通过高通滤波(卷积)来实现。

 

附录:卷积与滤波

什么是滤波?

要了解什么是滤波,首先要知道什么是波。

图像原本只是一种随时间推移的波形图,也就是图像一开始处于时域状态,而我们并不能从时域图像中看出什么东西(除了一堆突起),而伟大的傅里叶公式让图像从时域中转换到的频域中。

图像由不同频率的波长组成,存在着高频部分和低频部分,当然这之间没有明确界限,我们需要知道的是高频部分和低频部分到底代表着什么。

高频部分其实就是代表着这幅图像的边缘信息,也就是锐度。

低频部分刚好相反,代表的是这幅图像的灰度变化信息,也就是内容。

那么我们把高频部分的波称作为高频波,低频部分的则称为低频波。这就是波。

那么什么是滤波呢,顾名思义,就是将某一部分波过滤掉。

 

什么是卷积?

卷积的运用很广泛,在数据结构中也有相对应的卷积,而在图像处理中,卷积就更加有用了。

通俗的讲,卷积其实就是加权求和,卷积模板就是权值。

比如 下面这幅图

我们挑选这点(2,2)的周围(3*3)区域作为卷积对象,首先,我们要设定卷积模板(当然模板也要3*3)

首先 我们假定这3*3区域内的灰度值为  (3,3,3;2,2,1;1,2,3);

那么我们假定一个卷积模板为(1,2,1;0,0,0,-1,-2,-1);

则我们做卷积运算,对应加权求和:   sum=1*3+3*2+3*1+0*2+0*2+0*1+(-1)*1+(-2)*2+(-1)*3;

算下来为sum=4;

我们把灰度值4作为(2,2)点的新灰度,就完成了这次卷积运算。

了解过卷积以后,我们就懂了一个新的名词————滤波器,滤波器就是一个特定的公式导出的一个特定的卷积模板

 

高通滤波器

高通滤波器就是让图像高频波通过,滤掉低频波部分,保留边缘信息。

我们常见的高通滤波器有:sobel,Laplacian等

Sobel算子,就是对图像求导(一阶导数),x方向 y方向对应着两个不同的算子

x方向(1,0,-1;2,0,-2,;1,0,-1);

y方向(1,2,1;0,0,0;-1,-2,-1);

Laplacian算子 这个算子是对图像求二阶导数,就一个算子

(0,1,0;1,-4,1;0,1,0);

为了亮度归一化 算子求和一般为0。


低通滤波器

低通滤波器就是将高频部分滤掉,保留低频部分,其实就是模糊,降噪。

通常低通滤波器有高斯滤波器等。

高斯滤波就是利用了正态分布方程作为卷积模板的建立方程,所能去除的是高斯噪声。

函数实现起来也很简单 和上面的滤波一样 只是卷积模板要通过高斯方程求解一下而已。

opencvAPI也就一句话 GaussianBlur,这个函数利用了高斯方程的高阶可分离性,将二位的卷积计算转化为两次一维运算,大大减少运行时间。

 

滤波器的作用

简而言之,高频滤波器的作用是对图像进行锐化,保留边缘信息。低频滤波器的作用是对图像进行模糊,降噪。

滤波器通常用在预处理图像上,就比如我刚刚想要用拉普拉斯算子做二阶边缘提取,我先是用了高斯模糊去除了高斯噪声,因为拉普拉斯算子对噪声非常敏感。很多时候,一个好的预处理可以将一个算法提高到一个新的效果。滤波就担任着这样的职责。

 

附录来自博客:https://blog.csdn.net/cyhbrilliant/article/details/52526221 

  • 13
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值