Python 如何检测接触边界的轮廓?
我正在编写一个程序,可以使用Python和OpenCV检测3D打印机粉底中的不一致性。到目前为止,我所做的是使用边缘检测创建一个遮罩图像,然后再次执行边缘检测并排除任何接触边界的轮廓。这工作得很好,但是我想检测接触边界的轮廓。我尝试过各种方法,但似乎都没有达到我想要的效果。似乎和我有同样的问题,提供了答案,但是它是用C++编码的,我不完全理解。 例如,下面是一个轮廓与边界接触的图像:Python 如何检测接触边界的轮廓?,python,opencv,Python,Opencv,我正在编写一个程序,可以使用Python和OpenCV检测3D打印机粉底中的不一致性。到目前为止,我所做的是使用边缘检测创建一个遮罩图像,然后再次执行边缘检测并排除任何接触边界的轮廓。这工作得很好,但是我想检测接触边界的轮廓。我尝试过各种方法,但似乎都没有达到我想要的效果。似乎和我有同样的问题,提供了答案,但是它是用C++编码的,我不完全理解。 例如,下面是一个轮廓与边界接触的图像: 这是执行边缘检测后的图像:。正如你所看到的,图像的边界包含在我试图检测的轮廓中。请注意,边框并不总是正方形,但可
这是执行边缘检测后的图像:。正如你所看到的,图像的边界包含在我试图检测的轮廓中。请注意,边框并不总是正方形,但可以是任何多边形形状。在Python/OpenCV中有一种方法可以做到这一点
- 读取输入
- 变灰
- 门槛
- 获取白色像素的边界
- 将输入裁剪到这些边界以删除黑色边界
- 设置裁剪图像的阈值以隔离较亮的区域
- 应用形态学来清理它
- 获取轮廓及其边界框
- 测试边界框是否接触裁剪图像的4条边中的任意一条
- 在输入图像上绘制轮廓边界框
- 保存结果
输入:
用于查找边界的阈值图像: 裁剪输入: 第二个阈值: 输入上区域轮廓的边界框: 留言:
region touches the sides
region touches the sides