我知道在 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;
}