【发布时间】:2012-10-03 09:43:40
【问题描述】:
我知道在 OpenCV 2.1 中我们有一个设置 ROI 的函数:cvSetImageROI(),但是在 2.4 中不存在这样的函数(或者至少我在它的手册和帮助部分中找不到它。)
但是,这是我能找到的唯一有用的代码,它使用 opencv 2.4 来获取法师 ROI,但我无法理解它:
// define image ROI
cv::Mat imageROI;
imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));
// add logo to image
cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);
在这里他们想在原始图像右下角的大图像中添加一个非常小的日志。
所以我从这里了解到的是,创建了另一个矩阵来保存 ROI。它的尺寸使用 rect 函数给出,尺寸等于他们要添加的小标志的尺寸。
然后 thsi 让我感到困惑:cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI); 这里 addWeighted 的源 1 是 ROI 尺寸集,源 2 是徽标,目标也是 ROI 尺寸集。它是否正确?还是我错过了什么?
在此之后,将显示结果,并将徽标添加到大图像中。这些命令中包含的大图。
在问这里之前,我想自己尝试一下代码,以帮助澄清情况。但我收到此错误,因为无法识别 image():'image': identifier not found
int _tmain(int argc, _TCHAR* argv[])
{
Mat src1, imageROI, logo;
logo = imread("c:\\car1.jpg", -1);
imageROI= image(Rect(385,270,logo.cols,logo.rows));
addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);
namedWindow("meh", CV_WINDOW_AUTOSIZE);
imshow("meh", imageROI);
waitKey(0);
return 0;
}
【问题讨论】: