zoukankan      html  css  js  c++  java
  • 合并多个cv::Mat类型,即合并多个图片的接口

    1、
    cv::Mat get_merage_image(cv::Mat cur_frame)
    {
    cv::Mat image_one=cur_frame;
    cv::Mat image_two=cur_frame;
    //创建连接后存入的图像,两幅图像按左右排列,所以列数+1
    cv::Mat img_merge(image_one.rows,image_one.cols+
    image_two.cols+1,image_one.type());
    //图像拷贝,不能用Mat中的clone和copyTo函数,单幅图像拷贝可用,clone和copyTo不仅拷贝图像数据,还拷贝一///些其他的信息
    //而现在是将两幅图像的数据拷贝到一副图像中,只拷贝图像数据
    //因此用colRange来访问图像的列数据colRange第一参数是起始列,是从0开始索引,而第二个参数是结束列,
    //从1开始索引,与我们以前使用的不同,因此,参数分别为0和image_one.cols
    image_one.colRange(0,image_one.cols).
    copyTo(img_merge.colRange(0,image_one.cols));
    //第二幅图像拷贝,中间的一行作为两幅图像的分割线
    image_two.colRange(0,image_two.cols).copyTo(
    img_merge.colRange(image_one.cols+1,img_merge.cols));
    return img_merge;
    }
    2、
    cv::Mat get_merage_image2(cv::Mat cur_frame)
    {
    cv::Mat img_merge;
    cv::Size size(cur_frame.cols + cur_frame.cols, MAX(cur_frame.rows, cur_frame.rows));
    img_merge.create(size, CV_MAKETYPE(cur_frame.depth(), 3));
    img_merge = cv::Scalar::all(0);
    cv::Mat outImg_left, outImg_right;
    //2.在新建合并图像中设置感兴趣区域
    outImg_left = img_merge(cv::Rect(0, 0, cur_frame.cols, cur_frame.rows));
    outImg_right = img_merge(cv::Rect(cur_frame.cols, 0, cur_frame.cols, cur_frame.rows));
    //3.将待拷贝图像拷贝到感性趣区域中
    cur_frame.copyTo(outImg_left);
    cur_frame.copyTo(outImg_right);
    return img_merge;
    }
     
  • 相关阅读:
    Memcache第一篇---基础教程
    【分享】一位技术人员成长历程
    simhash
    Cookie mapping技术
    压缩编码基础知识
    shell vim--处理二进制文本
    CSDN泄漏数据完整分析
    day17 isinstance type issubclass 反射
    day16 类之间的关系 特殊成员
    day14 面向对象
  • 原文地址:https://www.cnblogs.com/llfctt/p/9138488.html
Copyright © 2011-2022 走看看