我目前正致力于自动图像编辑的解决方案。
我使用了Canny Edge Detection和Closing。
但我最终想要完成的是从蓝图中找到所有矩形并用图像填充它们。
我想知道我需要采取的流程,而不是确切的代码或解决方案!
请告诉我应该采取哪些措施来完成它,thx。
Image that needs to go into all the rectangles
2018-02-12 EDITTED(clean rectangle detected)
//我已经找到了矩形并在它们上面画线,但结果并不像我预期的那样可靠(它在不是停车位的矩形上绘制线条),我不知道如何放置这些矩形上的图像而不是它们上的绘制线。请帮帮我!
P.S:只有在JAVA中!
答案 0 :(得分:0)
在你的情况下,你不需要Canny。您的图像非常干净,边缘已经非常明显。一个简单的阈值,将更好地工作。
对于矩形检测,请查看使用findcontours并检查角度的此示例(包含在opencv中):https://github.com/opencv/opencv/blob/master/samples/cpp/squares.cpp
在您的情况下,您可以跳过Canny步骤,因为您没有渐变。您可能需要修改过滤,例如您的案例的侧面维度。
矩形看起来很好,您只需要在该位置复制图像。如果旋转矩形,则还必须旋转图像。
编辑: 要将小图像复制到大图像上,您可以执行以下操作
Mat submatImg = bigImage.submat(new Rect(x, y, smallImage.width(), smallImage.height());
smallImage.copyTo(submatImg);
如果您需要进行调整大小和旋转,请查看geometric transformations