如何将cv :: Mat转换为cv :: Rect

时间:2013-11-18 19:04:33

标签: c++ opencv ubuntu rect

我在cv :: Mat中有一个图像作为一个面,我需要一个cv :: Rect对象中的整个图像 我找不到它是如何完成的 那,或者,如果可能的话,从我目录中的图像创建Rect

3 个答案:

答案 0 :(得分:9)

将cv :: Mat转换为cv :: Rect。

你想要里面 的那部分吗?

Mat roi = Mat(img,rect);

将为您提供裁剪区域

答案 1 :(得分:3)

cv :: Mat不能直接给你一个cv :: Rect,但你可以创建你的 拥有使用cv :: Mat的size()方法,并假设cv :: Rect的起点是(0,0)

cv::Mat image; // load your image into the cv::Mat ... // now create the cv::Rect from the cv::Mat cv::Rect rect = cv::Rect(0, 0, image.size().width, image.size().height);

答案 2 :(得分:1)

虽然,正如@berak所说,你无法将cv :: Mat转换为cv :: Rect,我猜你想要这样的东西(未经测试)。

cv::Mat face;   // you already have this with some data in it
cv::Mat image;  // you already have this with some data in it
cv::Rect rect(x, y, w, h); // some place in image where you want face

// copy face into rectange within image
cv::resize(face, image(rect), cv::Size(rect.width, rect.height));