我在cv :: Mat中有一个图像作为一个面,我需要一个cv :: Rect对象中的整个图像 我找不到它是如何完成的 那,或者,如果可能的话,从我目录中的图像创建Rect
答案 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));