我正在编写一个程序,可以使用Python和OpenCV检测3D打印机粉末层的不一致性。到目前为止,我所做的是使用边缘检测创建一个蒙版图像,然后再次执行边缘检测,并排除任何接触边界的轮廓。然而我想检测轮廓接触边界以及。我已经尝试了各种方法,但似乎没有达到的结果,我正在寻找。This article看起来和我有同样的问题,并提供了答案,但它是用C++编写的,我不完全理解。
例如,下面是一个轮廓与边界接触的图像:image.
这是执行边缘检测后的图像:image。正如你所看到的,图像的边界包含在我试图检测的轮廓中。注意,边界并不总是正方形,而是可以是任何多边形形状。
2条答案
按热度按时间yeotifhr1#
下面是在Python/OpenCV中实现这一点的一种方法。
输入:
用于查找边界的阈值图像:
裁剪输入:
形态清洁第二阈值:
输入上区域轮廓的边界框:
打印消息:
ttp71kqs2#
您可以使用此代码来查找轮廓是否接触边界,相对而言,这要快得多: