OpenCV如何叠加大小不同的图片

  有时候我们想叠加不同大小的图片,类似于把一个小Logo加到原本图片上去,且能指定Logo的位置,由于add()函数要求输入的图片格式、尺寸相同,所以不能直接使用add()函数,因此再使用之前要先定义感兴趣区域(ROI),ROI大小和Logo图相同,ROI位置决定Logo图插入位置。我们使用addWeighted()调整背景和logo图的强度比例,以下的imageROI和logo这两个Mat,需要大小、尺寸相同,imageROI和img指向相同的数据结构,因此我们改变imgROI时原图img也随之更改,到达插入Logo图的原始目的.

    Mat img = imread("background.jpg",CV_LOAD_IMAGE_UNCHANGED);
    Mat logo = imread("logo.jpg",CV_LOAD_IMAGE_UNCHANGED);
    Mat imgROI = img(Rect(30,30,logo.cols,logo.rows));
    addWeighted(logo,0.5,imgROI,0.5,0,imgROI);
    imshow("img___",img);

OpenCV如何叠加大小不同的图片_第1张图片

你可能感兴趣的:(OpenCV学习历程)