美文网首页
OpenCV 教程 09 : 图形叠加与混合

OpenCV 教程 09 : 图形叠加与混合

作者: wjundong | 来源:发表于2020-02-24 08:26 被阅读0次

感兴趣区域 ROI

设置感兴趣区域 ROI (regin og interest),就是框选图象的一部分进行操作

下例显示如何利用 ROI 将一幅图像加载到另一幅图形的指定位置

#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const *argv[])
{
    Mat image = imread("5.jpg");
    Mat logo = imread("logo.png");

    // 设置感兴趣区域
    Mat imageROI = image(Rect(10, 10, logo.cols, logo.rows));
    // 拷贝 logo 到感兴趣区域
    logo.copyTo(imageROI);

    imshow("结果", image);
    waitKey(0);

    return 0;
}

运行结果

image.png

线性混合

addWeighted 混合的两张图形需大小一样,否则出错

#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const *argv[])
{
    Mat image = imread("mogu.jpg");
    Mat rain = imread("rain.jpg"), out;

    // 线性混合, 0.6 为 image 的权值, 0.4 为 rain 权值
    addWeighted( image, 0.6, rain, 0.4, 0.0, out);

    imshow("结果", out);
    waitKey(0);

    return 0;
}
image.png

对感兴趣区域进行线性混合

虽然 addWeighted 混合的两张图形需大小一样,否则出错,但可利用兴趣区域 ROI + addWeighted 实现对指定位置进行混合

#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const *argv[])
{
    Mat image = imread("5.jpg");
    Mat logo = imread("logo.png");
    Mat imageROI = image(Rect(10, 10, logo.cols, logo.rows));

    addWeighted( imageROI, 0.6, logo, 0.4, 0.0, imageROI);

    imshow("结果", image);
    waitKey(0);

    return 0;
}
image.png

相关文章

网友评论

      本文标题:OpenCV 教程 09 : 图形叠加与混合

      本文链接:https://www.haomeiwen.com/subject/lgnpqhtx.html