前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV源码系列|图像拼接2

OpenCV源码系列|图像拼接2

作者头像
用户9831583
发布2022-06-16 15:30:53
2260
发布2022-06-16 15:30:53
举报
文章被收录于专栏:码出名企路

四张图拼接

代码实现:

代码语言:javascript
复制
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <cstring>
using namespace std;
using namespace cv;
int main()
{

 Mat combine,combine1,combine2;
 Mat a=imread("01.jpg");
 Mat b=imread("02.jpg");
 Mat c=imread("03.jpg");
 Mat d=imread("03.jpg");
 hconcat(a,b,combine1);
 hconcat(c,d,combine2);
 vconcat(combine1,combine2,combine);
 namedWindow("Combine",CV_WINDOW_AUTOSIZE);
 imshow("Combine",combine);
 waitKey(0);

 return 0;
}

25张图片拼接

代码实现:

代码语言:javascript
复制
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<opencv2/stitching.hpp>

using namespace std;
using namespace cv;
int main()
{
    int i = 0,j=0;
    Mat combine;
    Mat row[5][5], column[5];
    Mat com_row[5][5], con_column[5];

    row[0][0] = imread("../25/1-1.png");
    row[0][1] = imread("../25/1-2.png");
    row[0][2] = imread("../25/1-3.png");
    row[0][3] = imread("../25/1-4.png");
    row[0][4] = imread("../25/1-5.png");

    row[1][0] = imread("../25/2-1.png");
    row[1][1] = imread("../25/2-2.png");
    row[1][2] = imread("../25/2-3.png");
    row[1][3] = imread("../25/2-4.png");
    row[1][4] = imread("../25/2-5.png");

    row[2][0] = imread("../25/3-1.png");
    row[2][1] = imread("../25/3-2.png");
    row[2][2] = imread("../25/3-3.png");
    row[2][3] = imread("../25/3-4.png");
    row[2][4] = imread("../25/3-5.png");

    row[3][0] = imread("../25/4-1.png");
    row[3][1] = imread("../25/4-2.png");
    row[3][2] = imread("../25/4-3.png");
    row[3][3] = imread("../25/4-4.png");
    row[3][4] = imread("../25/4-5.png");

    row[4][0] = imread("../25/5-1.png");
    row[4][1] = imread("../25/5-2.png");
    row[4][2] = imread("../25/5-3.png");
    row[4][3] = imread("../25/5-4.png");
    row[4][4] = imread("../25/5-5.png");

    //水平拼接
    com_row[0][0] = row[0][0];
    com_row[1][0] = row[1][0];
    com_row[2][0] = row[2][0];
    com_row[3][0] = row[3][0];
    com_row[4][0] = row[4][0];

    for (i = 0; i < 5; i = i + 1)
    {
        for (j = 0; j < 4; j = j + 1)
        {   
            //图像尺寸要保持一致
            hconcat(com_row[i][j], row[i][j+1], com_row[i][j+1]);
        }
        column[i] = com_row[i][4];   //产生的每一行的拼接图片
    }

    //垂直拼接
    con_column[0] = column[0];
    for (i = 0; i < 4; i = i + 1)
    {
        vconcat(con_column[i], column[i + 1], con_column[i + 1]);
    }
    combine = con_column[4];
    namedWindow("Combine", CV_WINDOW_AUTOSIZE);
    imshow("Combine", combine);
    cv::waitKey(0);
    imwrite("Combine.png", combine);
   
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码出名企路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档