使用 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)从锻造查看器中裁剪特定房间/区域