[英]opencv java - detect all the rectangles and fill them with an image
我目前正在研究自动图像编辑的解决方案。
我使用了 Canny 边缘检测和关闭。
但我最终想要完成的是从蓝图中找到所有矩形,并用我拥有的图像填充它们。
我想知道我需要走的过程,而不是确切的代码或解决方案!
请建议我应该采取哪些步骤来完成它,谢谢。
// 我已经找到了矩形并在上面画了线,但结果并不像我预期的那么可靠(它在不是停车位的矩形上画线),我不知道如何在上面放图像矩形而不是在它们上面画线。 请帮帮我!
PS:请只在JAVA中!
就您而言,您不需要 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);
如果您需要调整大小和旋转,请查看几何变换
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.