我正在开发一个用于图像分析的CV工具,并使用4个点来形成一个变换矩阵(Map)用于图像校正(透视投影-cv.four_point_transform
)。我有一组从热成像仪获得的源图像,存在失真。我成功地应用了标准OpenCV函数的管道。您可以在下面的图片中看到它(图1)。请注意,主管道由以下步骤组成:
1.校正失真。
1.使用双边滤波器进行平滑。
1.门槛。
1.哈里斯角点探测器。
1.侵 eclipse 。
1.侵 eclipse 后点云上平面上的点的加权平均值。在“目标”图像中,您可以看到4个点,实际大小为1个像素(为清晰起见放大)。
- 你认为哪种方法在未来更容易实现?
- 如何正确去除寄生点?
- 是否有更简单的方法来检测角点?
不幸的是,我遇到了Harris角点检测器无法科普并且无法检测钝角的情况。我开始测试不同的方法,例如:
1.阈值-〉轮廓-〉近似轮廓-〉点。
1.阈值-〉Canny边缘检测-〉膨胀-〉FAST。
1.阈值-〉Canny边缘检测-〉扩张-〉SIFT。
1.阈值-〉Canny边缘检测-〉膨胀-〉概率Hough线-〉Bentley-Ottmann点。
正如你所看到的,有些方法可以使用,但它们形成了许多寄生点。我担心,与它们斗争将比乍看上去更困难(图2)。
图1 -Successful detection
图2 -Unsuccessful detection
2条答案
按热度按时间t3irkdon1#
我认为只检测必要的4个角落鲁棒所有可能的图像是困难的目标。
所以...
我会考虑采用一些角点检测过程,使“足够”的检测结果。其中,“足够”意味着至少可以检测到必要的4个角点(未检测到它们是最严重的问题)。
换句话说,允许“可以额外检测一些不必要的角”。(当然,不允许“太多”)
然后,我将考虑一些RANSAC类似的方法,用于获得变换矩阵。
s5a0g9ez2#
你可以...
approxPolyDP
的阈值,这样就可以去除一些钝角。