繁体   English   中英

opencv java - 检测所有矩形并用图像填充它们

[英]opencv java - detect all the rectangles and fill them with an image

我目前正在研究自动图像编辑的解决方案。

我使用了 Canny 边缘检测和关闭。

但我最终想要完成的是从蓝图中找到所有矩形,并用我拥有的图像填充它们。

我想知道我需要走的过程,而不是确切的代码或解决方案!

请建议我应该采取哪些步骤来完成它,谢谢。

具有矩形的图像

需要进入所有矩形的图像

到目前为止我做了什么

2018-02-12 编辑(检测到干净的矩形)

// 我已经找到了矩形并在上面画了线,但结果并不像我预期的那么可靠(它在不是停车位的矩形上画线),我不知道如何在上面放图像矩形而不是在它们上面画线。 请帮帮我!

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM