背景
什么情况下,需要将区域变换成轮廓,有啥好处?
1 轮廓是基于亚像素的,能提供更佳的精度。而区域最小也是一个像素。
2 轮廓可以认为是线条(其实是一些列的点),线条是一维的,而区域是二维的。
一维,有自己的特征,有时我们会借助这些特征,这些特征往往在二维上体现不明显。
比如:轮廓的长度,轮廓的曲度,轮廓闭合度
综上所诉,我们有时需要将区域变换成轮廓!
区域到轮廓转换相关函数
比如,我想找划痕,一开始我用lines_gauss效果很好,但是lines_gauss这个函数非常耗时,而且如果图片太大,会消耗大量内存且无法释放!(还没找到原因,后续找到原因后再分享一下)。
所以,我放弃了lines_gauss。
我先通过动态阈值找到比较黑的地方,划痕的特点是又细又长。所以我的思路是将区域转换成轮廓,再进行挑选。
gen_contour_region_xld
比如,这样一个区域:
我想将其变成线,应该怎么做?
首先,我通过 gen_contour_region_xld 得到效果: