[英]Interpolating colors inside a contour in opencv [python]
我正在处理一些包含表格的图像,并且上面有 1 或 2 个贴纸。 我想要做的是摆脱那些贴纸。 使用颜色阈值(在 HSV 中)和轮廓检测,我能够为这些贴纸创建一个蒙版。 现在我希望这些贴纸从那里“溶解”出来(我不知道正确的术语)。 同时保持这些表格线完好无损,以便我的线检测工作良好(我必须在此清洁后进行)。
我试过 OpenCV 的inpaint 。 但这在这里效果不佳,因为贴纸尺寸足够大。
看这个例子:
cv.inpaint()
的结果。 我想要的是重建这些线条。现在我的方法是在贴纸轮廓之间插入颜色,以填充它。 对于轮廓内的每个像素,我将进行垂直插值和水平插值(边界颜色的插值),然后用两者的平均值填充该像素。 我希望这至少能保留我的垂直和水平线。 (如果它在桌子的角落可能会失败)。 这也将保持背景平滑,我的背景可以有一些不同的颜色。
现在我的问题是如何实现这一点。 我拥有的是使用 OpenCV 的get_contours()
找到的轮廓。 我不知道如何在其边界上获取颜色以及如何插入中间颜色。
任何帮助表示赞赏。 提前致谢。
由于保密,我不能分享整个图像。
我尝试了接缝雕刻方法(实现)。 结果如下:
一旦我知道要使用哪个,它就会很好地工作。 而且我不确定当我们同时拥有水平线和垂直线时效果如何。
附注。 不要建议需要找到线路然后工作的解决方案。 因为我的整个形象会有很多线条。
您可以制作合成示例图像。 为了更好地解释您的问题。 据我所知,您可以使用泊松图像编辑。 只需取一张清晰的纸图像并使用泊松混合和您提取的蒙版粘贴它。
检查此 github repo 作为示例以获取代码示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.