假设我们想合并两个不一样大小的图像,由于cv::add要求输入的两个图像具有相同的尺寸,所以不能直接使用,需要在使用之前定义感兴趣区域。只要较大图像的感兴趣区域等于较小图像的大小,add就可以正常工作了。
int main()
{
cv::Mat img1 = cv::imread("boldt.jpg");
cv::Mat logo = cv::imread("logo.bmp");
cv::Mat imgROI = img1(cv::Rect(385, 270, logo.cols, logo.rows));
cv::addWeighted(imgROI, 1.0, logo, 0.5, 0., imgROI);
cv::namedWindow("with logo");
cv::imshow("with logo", img1);
cv::waitKey(0);
}
图片1: