【发布时间】:2019-12-25 02:47:58
【问题描述】:
我能够提取两个图像之间的差异(边缘不清晰的原始图像)。我想要做的是将图像转换为具有锐利四边形边缘的图像(中间步骤到最终图像)。 我正在使用带有 cv2 和 numpy 的 python 2.7。我现在的主要问题是,我不知道如何对其进行编程以生成最终图像(因此如何切割不锐利的边缘并生成具有锐利边缘的最终图像)。
请问,如何进行这种图像处理?
【问题讨论】:
-
在 numpy.zeros 数组上绘制一个白色填充的多边形作为掩码或 roi,并使用它来使图像变黑。见note.nkmk.me/en/python-opencv-numpy-alpha-blend-mask 和datacarpentry.org/image-processing/04-drawing-bitwise
-
这可以工作,但我有很多图像在进行差异检测,这些图像的位置和形状不同(它们有共同的四边形,但这个四边形在不同的图像上可以有不同的边) .通用示例会很棒。
-
对不起,我不得不把它留给其他人,因为我不精通 OpenCV。如果您知道多边形以便将其绘制在图像上,则可以将其绘制在黑色背景图像上以用作蒙版。如果您不知道多边形,那么您可以阈值,进行形态腐蚀并找到轮廓,然后为其计算一些 N 边多边形。 OpenCV 有一种将多边形拟合到某种形状的方法。见 cv2.approxPolyDP docs.opencv.org/3.1.0/dd/d49/tutorial_py_contour_features.html
标签: python numpy opencv image-processing