《opencv》边缘检测、轮廓检测、图像分割

边缘edge检测、轮廓contours检测、图像分割(背景提取)这三个概念在我看来有些不好理解,因为边缘检测感觉就是检测轮廓的边缘啊,检测出来边缘不就检测出来轮廓了么。另外图像分割是前景与背景之间的分割,那不也就是轮廓的检测,所有的轮廓之外不就是背景了么。
最近把这三个概念集中在一起看了看,总结一下。

边缘检测主要是检测轮廓边缘的那条线,而且那条线是有宽度的不只是1个像素宽的边缘;
而轮廓检测得到的是边缘和边缘内部的所有的点坐标Point,而且轮廓不止一个,一个轮廓是vector,那图片上的所有轮廓就是vector<vector>,而且除了轮廓还有轮廓之间的包含关系hierarchy,它是个vector型的数据。最后,在使用findcontours函数查找轮廓之前先进性二值化主要效果会比较好。

边缘检测

边缘就是像素值发生突变的点,也就是一阶导数的极大值点,或者二阶导数的过0点。
边缘检测的结果是Mat,直接的边缘点图,每一点保存的是该点在kernel指定方向上的梯度信息。可以直接绘制出来。
而轮廓检测得到的是边缘、边缘内的点的位置坐标信息,就是很简单的Point型数据,此外还有hierarchy这种表示轮廓包含关系的数据。但边缘检测的结果就是每一点的梯度信息,边缘内部没有梯度变化,所以值是0.

边缘检测的基本原理

可以通过原图与滤波器kernel进行卷积运算得到各个像素点在某个方向上的梯度(边缘)。
函数:filter2d(输入图像,输出图像,输出图像的深度,卷积核,anchor)

  • 输入图像是单通道或者多通道, 输出
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值