opencv基础(2)——利用ROI实现图像叠加

1、简介

ROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。

2、代码演示

   //加载图像1和图2
    Mat mat1 = imread("/home/mark/Desktop/1.png", IMREAD_COLOR);
    Mat mat2 = imread("/home/mark/Desktop/2.png", IMREAD_COLOR);
    namedWindow("mat1", WINDOW_NORMAL);
    namedWindow("mat2", WINDOW_NORMAL);
    imshow("mat1", mat1);
    imshow("mat2", mat2);

    //创建目标图像
    Mat src((mat1.rows+mat2.rows), (mat1.cols+mat2.cols), CV_8UC3, Scalar(255, 255, 255));
    namedWindow("src1", WINDOW_NORMAL);
    imshow("src1", src);

    //设置感兴趣区域大小和位置
    Mat srcROI1(src, Rect(0, 0, mat1.cols, mat1.rows));//选择目标区域roi1
    Mat srcROI2(src, Rect(mat1.cols, mat1.rows, mat2.cols, mat2.rows));//选择目标区域roi2

    //把图1和图2拷贝到src的指定区域
    mat1.copyTo(srcROI1);
    mat2.copyTo(srcROI2);

    //显示叠加之后的图
    namedWindow("src2", WINDOW_NORMAL);
    imshow("src2",src);

    //让程序暂停
    waitKey();

3、测试结果

3.1、图像1

3.2、图像2

3.3、创建的图像

3.4、叠加图

猜你喜欢

转载自blog.csdn.net/cwj066/article/details/82898380
今日推荐