使用 OpenCV 如何根据 x 和 y 坐标裁剪图像,并允许 x 和 y 坐标成为裁剪的中心?

Posted

技术标签:

【中文标题】使用 OpenCV 如何根据 x 和 y 坐标裁剪图像,并允许 x 和 y 坐标成为裁剪的中心?【英文标题】:Using OpenCV how could I crop an image based on the x and y coordinates, and allow that x and y coordinate to be the center of the crop? 【发布时间】:2016-07-05 15:33:58 【问题描述】:

我尝试使用 OpenCV 裁剪图像。我已经有了要裁剪的图像特定部分的坐标。我遇到的问题是,因为当您使用矩形在 opencv 中裁剪时,您给它的坐标是矩形的左上角,所以在我的情况下,它切断了一半的脸,因为我的坐标位于脸的中间。有没有办法让给定的 x 和 y 线从矩形的中心开始,这样你就可以创建一个从内向外而不是从外向内裁剪的部分?我也很乐意听取其他关于如何完成这项任务的建议。

【问题讨论】:

无论您的中心坐标如何,例如,在将其提供给裁剪图像功能之前,在 x 上减去 50,在 y 上减去 50? 【参考方案1】:

我不知道 openCV 有办法强制裁剪基于图像的中心,但无论如何解决方案都非常简单。

现在你有类似cv::Rect imageToCrop(X, Y, Width, Height); 的东西

改成:cv::Rect imageToCrop(X - (Width/2), Y - (Height/2), Width, Height);

这将围绕你的 X 和 Y

【讨论】:

以上是关于使用 OpenCV 如何根据 x 和 y 坐标裁剪图像,并允许 x 和 y 坐标成为裁剪的中心?的主要内容,如果未能解决你的问题,请参考以下文章

根据 Revit 坐标(最小和最大 X、Y、Z)从锻造查看器中裁剪特定房间/区域

在 Javascript 中使用 X、Y 坐标裁剪图像

如何获取裁剪图像相对于原始图像的坐标?

3h精通OpenCV-重调大小与图像裁剪

如何指定 X、Y、宽度和高度以便在 Photoshop 中进行裁剪?

如何放大裁剪尺寸