轮廓提取的原理

边沿提取(canny算子)---找出轮廓---框选轮廓

我们知道,我们可以用各种算子,常见的canny算子等,对灰度图进行轮廓提取。

然后,进一步地,我们需要框选轮廓,那么是如何框选的呢?opencv有findcontour函数,但是我们想知道其中原理。

找出轮廓后,就可以用向量来存储这些轮廓点,一般是矩形框选,那么x最值和y最值,就构成了框了。

【参考文献:https://blog.****.net/helei001/article/details/23602449】

1.边沿提取

https://blog.****.net/animatex/article/details/79983020

这篇文章讲了一阶的算子和二阶的算子,一阶就是边缘肯定是亮度导数大的点,二阶的原理就是边缘肯定是亮度变化大,且亮度的二阶导数为0的点。

这里面最常用最出名的是canny算子。

 

-----------------------------------------

另外:

为什么要用高斯金字塔:

高斯金字塔就是一个下采样,逐渐模糊的过程。为什么不用均值模糊呢?参见这篇文章:https://blog.****.net/qinchao315/article/details/81269328

轮廓提取的原理

主要原因是,高斯模糊更符合人眼观察的感觉。而高斯金字塔就相当于模拟人在不同举例看到的效果。高斯金字塔的理论基础为尺度空间理论,而后续也衍生出了多分辨率分析。

其次要做到0.5倍的缩小,可以这样:
(1)用高斯卷积核来卷积(为了输出尺度一样,用padding same)

(2)期初偶数行和列。