【发布时间】:2011-07-14 02:00:11
【问题描述】:
我有一个笼统的问题,想知道是否可以对矩形进行矩阵计算。我有一个 CvRect ,其中存储了带有坐标的信息,我有一个 cvMat 具有转换数据。我想知道的是,是否有办法让 Rect 使用矩阵数据从中生成一个旋转、倾斜和重新定位的矩形。我在网上搜索过,但我只能获得有关图像转换的信息。
提前感谢您的帮助。
【问题讨论】:
我有一个笼统的问题,想知道是否可以对矩形进行矩阵计算。我有一个 CvRect ,其中存储了带有坐标的信息,我有一个 cvMat 具有转换数据。我想知道的是,是否有办法让 Rect 使用矩阵数据从中生成一个旋转、倾斜和重新定位的矩形。我在网上搜索过,但我只能获得有关图像转换的信息。
提前感谢您的帮助。
【问题讨论】:
不,这是不可能的。 cv::Rect 也无法做到这一点,因为它只描述了曼哈顿世界中的矩形。有 cv::RotatedRect,但这也不处理倾斜。
但是,您可以将矩形的角点输入 cv::transform: http://opencv.itseez.com/modules/core/doc/operations_on_arrays.html?highlight=transform#cv2.transform
然后您将获得相应转换的四个点。请注意,此功能还有更专业的版本,例如warpPerspective() 和 warpAffine()。
【讨论】: