zoukankan      html  css  js  c++  java
  • openCV图像合成

    #include <iostream>
    #include <opencv2/opencv.hpp>
    #include <opencv2/highgui/highgui.hpp>
    //#include <opencv2/cvaux.hpp>
    #include <fstream>
    using namespace std;
    using namespace cv;
    
    int main()
    {
        Mat image1=imread("/Users/war/Desktop/2.jpeg");
        Mat image2=imread("/Users/war/Desktop/1.jpeg");
        if (image1.empty() || image2.empty())
        {
            printf("open error");
            return 0;
        }
        //1.新建一个要合并的图像
        Mat img_merge;
        Size size(image1.cols + image2.cols, MAX(image1.rows, image1.rows));
        img_merge.create(size, CV_MAKETYPE(image1.depth(), 3));
        img_merge = Scalar::all(0);
        Mat outImg_left, outImg_right;
        //2.在新建合并图像中设置感兴趣区域
        outImg_left = img_merge(Rect(0, 0, image1.cols, image1.rows));
        outImg_right = img_merge(Rect(image1.cols, 0, image1.cols, image1.rows));
        //3.将待拷贝图像拷贝到感性趣区域中
        image1.copyTo(outImg_left);
        image2.copyTo(outImg_right);
        namedWindow("image1", 0);
        imshow("image1", img_merge);
        waitKey();
        return 0;
    }

    openCV图像合成

    #include <iostream>
    #include <opencv2/opencv.hpp>
    #include <opencv2/highgui/highgui.hpp>
    //#include <opencv2/cvaux.hpp>
    #include <fstream>
    using namespace std;
    using namespace cv;
    
    int main()
    {
        Mat image1=imread("/Users/war/Desktop/1.jpeg");
        Mat image2=imread("/Users/war/Desktop/2.jpeg");
        if (image1.empty() || image2.empty())
        {
            printf("open error");
            return 0;
        }
        //push_back 方法将图像2拷贝到图像1的最后一行
        Mat img_merge;
        img_merge.push_back(image1);
        img_merge.push_back(image2);
        
        namedWindow("img_merge", 0);
        imshow("img_merge", img_merge);
        
        waitKey();
        return 0;
    }
    //#include <cv.h>
    #include <opencv2/core/core.hpp>
    #include<opencv2/highgui/highgui.hpp>
    //#include <highgui.h>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    int main()
    {
        double alpha = 0.5; double beta; double input;
        
        Mat src1, src2, dst;
        
        cout << " Simple Linear Blender " <<endl;
        cout << "-----------------------" << endl;
        cout << "* Enter alpha [0-1]: ";
        cin >> input;
        if (input >= 0.0 && input <= 1.0)
        {
            alpha = input;
        }
        
        /// Read image ( same size, same type ),注意,这里一定要相同大小,相同类型,否则出错
        src1 = imread("/Users/war/Desktop/1.png");
        src2 = imread("/Users/war/Desktop/2.png");
        
        if (!src1.data) { printf("Error loading src1 
    "); return -1; }
        if (!src2.data) { printf("Error loading src2 
    "); return -1; }
        
        /// Create Windows
        namedWindow("Linear Blend", 1);
        
        beta = (1.0 - alpha);
        addWeighted(src1, alpha, src2, beta, 0.0, dst);
        
        imshow("Linear Blend",dst);
        
        waitKey();
        return 0;
    }
    View Code
    //#include <cv.h>
    #include <opencv2/core/core.hpp>
    #include<opencv2/highgui/highgui.hpp>
    //#include <highgui.h>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    int main()
    {
        double alpha = 0.5; double beta; double input;
        
        Mat src1, src2, dst;
        
        cout << " Simple Linear Blender " <<endl;
        cout << "-----------------------" << endl;
        cout << "* Enter alpha [0-1]: ";
        cin >> input;
        if (input >= 0.0 && input <= 1.0)
        {
            alpha = input;
        }
        
        /// Read image ( same size, same type ),注意,这里一定要相同大小,相同类型,否则出错
        src1 = imread("/Users/war/Desktop/1.png");
        src2 = imread("/Users/war/Desktop/2.png");
        
        if (!src1.data) { printf("Error loading src1 
    "); return -1; }
        if (!src2.data) { printf("Error loading src2 
    "); return -1; }
        
        /// Create Windows
        namedWindow("Linear Blend", 1);
        
        beta = (1.0 - alpha);
        addWeighted(src1, alpha, src2, beta, 0.0, dst);
        
        imshow("Linear Blend",dst);
        
        waitKey();
        return 0;
    }
  • 相关阅读:
    定时刷新
    Codesmith生成oracle、mssql模版中的部分区别和基本功能备忘
    oracle使用中遇到的问题备忘
    存储过程内建临时表和临时函数,合并一个由存储过程返回的表
    烂MP3
    别人笑我太疯癫,我笑别人看不穿
    服务器被挂Iframe木马的解决方法(不是IIS映射修改,也不是ARP病毒,并且网页文件源代码里没有iframe代码的解决方法)
    随便记录下
    重构桌面飘着圣诞老人,利用策略模式和改造的代理模式让软件完全实现开闭原则,欢迎下载源代码分析
    Nhibernate连接oracle数据库报 Could not compile the mapping document异常的解决方法
  • 原文地址:https://www.cnblogs.com/war1111/p/10968134.html
Copyright © 2011-2022 走看看