本例程主要实现:两张有重叠部分的PNG格式文件,通过灰度化、角点检测、特征点提取、NCC算法匹配和RANSAC算法滤除误匹配完成两张图像的拼接并保存拼接图像,最后并将拼接后的图像平均大小裁剪成两部分。

本例程完整源码和素材下载

目录

主函数

效果一

效果二

主函数:

clc;
clear all;
close all
% img1 = imread('projection_a.png');%读取拼接图1
% img2 = imread('projection_b.png');%读取拼接图2img1 = imread('GDUT_left.png');%读取拼接图1
img2 = imread('GDUT_right.png');%读取拼接图2
img1Dup=rgb2gray(img1);%拼接图1灰度化
figure,imshow(img1Dup);%显示灰度化的拼接图1
title('Input gray image1');
img1Dup=double(img1Dup);%转化为double数据类型img2Dup=rgb2gray(img2);%拼接图2灰度化
figure,imshow(img2Dup);%显示灰度化的拼接图2
title('Input gray image2');
img2Dup=double(img2Dup);%转化为double数据类型%使用Harris角点检测进行特征点提取
[locs1] = Harris(img1Dup);%locs1存储拼接图1检测到的角点坐标
[locs2] = Harris(img2Dup);%locs2存储拼接图2检测到的角点坐标%利用NCC匹配算法去寻找两幅图像之间的对应关系(相似程度),匹配好的特征点用红色线进行连接
%NCC(Normalized cross correlation)--归一化的交叉相关性
%matchLoc1存储拼接图1进行NCC匹配好的角点坐标
%matchLoc2存储拼接图2进行NCC匹配好的角点坐标
[matchLoc1 matchLoc2] =  findCorr(img1Dup,img2Dup,locs1, locs2);%使用RANSAC算法滤除误匹配,寻找一个最佳单应矩阵H,RANSAC滤除匹配后特征点用蓝色线进行连接
%单应矩阵:同一平面下的点,从一个图像到另一个图像的投影映射
%RANSAC(RANdom SAmple Consensus)--随机抽样一致
%inlierIdx为RANSAC算法滤除误匹配后留下的特征点索引
[H inlierIdx] = estHomography(img1Dup,img2Dup,matchLoc2',matchLoc1');
%打印单应矩阵H
H
%拼接图1和拼接图2进行拼接,得到拼接后图像imgout
[imgout]=warpTheImage(H,img1,img2);
%显示拼接后的图像
figure,imshow(uint8(imgout));
title('final mosaicing image');
%保存拼接后的图片
imwrite(uint8(imgout), 'projection_mosaicing.jpg', 'jpg');%拼接图像裁剪为两部分
imgout_gray = rgb2gray(imgout);
[m,n]=size(imgout_gray);
X1 = imcrop(imgout,[0,0,n/2,m]);
X2 = imcrop(imgout,[n/2,0,n/2,m]);
figure,imshow(X1);%显示裁剪图1
figure,imshow(X2);%显示裁剪图2

效果一:

输入的两张png图像(注:jpg\bmp等格式图像本例程也适用):

      

拼接图1(GDUT_left.png)                                       拼接图2(GDUT_right.png)

NCC匹配算法去寻找两幅图像之间的对应关系(相似程度):

使用RANSAC算法滤除误匹配,寻找一个最佳单应矩阵H,RANSAC滤除匹配后特征点用蓝色线进行连接:

拼接图1和拼接图2进行拼接后图像:

拼接后图像裁剪为大小相同的两部分:

效果二:

换一份图像进行测试:

输入的两张png图像(注:jpg\bmp等格式图像本例程也适用):

    

拼接图1(HAUT_left.png)                           拼接图2(HAUT_right.png)

NCC匹配算法去寻找两幅图像之间的对应关系(相似程度):

使用RANSAC算法滤除误匹配,寻找一个最佳单应矩阵H,RANSAC滤除匹配后特征点用蓝色线进行连接:

拼接图1和拼接图2进行拼接后图像:

拼接后图像裁剪为大小相同的两部分:

基于Matlab的图像拼接与拼接后平均剪切实现相关推荐

  1. 基于Matlab的图像拼接计算机视觉课程设计

    资源下载地址:https://download.csdn.net/download/sheziqiong/85824219 资源下载地址:https://download.csdn.net/downl ...

  2. 基于matlab的图象拼接--数字图像拼接技术

    全景图(Panorama),或者说是图像拼接(Mosaic)技术是由于摄像器材的视角限制,不可能一次拍出很大图片而产生的.本文主要围绕拼接合成技术展开讨论,首先关注一下拼接的主要用途,再简单介绍拼接流 ...

  3. 基于MATLAB的图像拼接技术

    第一章 绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学.计算机视觉.图像处理和计算机图形学研究中的热点.图像拼接解决 ...

  4. 基于MATLAB基础信号插值算法(后附MATLAB代码)

    一.再MATLAB库中已有的插值算法: 1.分段线性插值: 利用每两个相邻的插值基点做线性插值: 分段线性插值具有很强的收敛性,在每个分段区间都是线性的: 在MATLAB中自带函数interp1(x, ...

  5. 基于MATLAB碎片拼接

    该课题为基于matlab的图像拼接,采用的方法是块拼接,带GUI界面.另外可定制基于sift,haar,小波的拼接,可实现多副图的拼接,几百幅都无问题.资源下载链接: 下载地址

  6. 一种基于Matlab的快速鲁棒特征点(surf)的图像拼接技术

    一.引言 快速鲁棒特征(Speeded-up robust feature,SURF)算法在图像匹配.模式识别.图像拼接等众多领域有着广泛的应用[1].有学者提出一种基于快速鲁棒特征(SURF)的眼底 ...

  7. 基于MATLAB/Simulink软件的单相光伏并网逆变器仿真,仿真中使用两级电路,前级BOOST升压后级光伏逆变并网

    基于MATLAB/Simulink软件的单相光伏并网逆变器仿真,仿真中使用两级电路,前级BOOST升压后级光伏逆变并网,建立了光伏电池(PV)模型,同时搭建了两种最大功率点跟踪算法(MPPT),扰动观 ...

  8. 基于MATLAB Simulink的三相AC DC整流后的直流电机转速开环控制仿真模型

    AC_DC_Machine:基于MATLAB Simulink的三相AC DC整流后的直流电机转速开环控制仿真模型. 仿真条件:MATLAB Simulink R2015b ID:2120650365 ...

  9. matlab知道破碎图序号复原,基于MATLAB研究碎纸片的拼接复原.docx

    基于MATLAB研究碎纸片的拼接复原 基于 MATLAB 研究碎纸片的拼接复原晖,江彩云,朱存斌*李明珺,徐(安徽财经大学 统计与应用数学学院,安徽 蚌埠 233030)摘要:针对碎纸片自动拼接复原, ...

最新文章

  1. fast rcnn,faster rcnn使用cudann加速问题
  2. 【struts2】struts2的一些常用高级应用
  3. s6 android 7.0 国行,三星S6电信版/S6 Edge国行版升级安卓7.0
  4. 接口之用例编写、验证
  5. FL Studio中钢琴卷帘窗的工具的使用
  6. 使用Struts2框架开发租房系统(8)
  7. linux模拟键盘按键_Linux上的自动键盘按键
  8. 【资源下载】分享个嵌入式开发的入门教程(包含视频)
  9. 二分查找边界问题总结
  10. FFMPEG详细参数
  11. 关于 IBM Tivoli Storage Manager在Oracle中的应用
  12. Excel使用right函数截断数据,并覆盖原来的数据
  13. 【kubernetes/k8s源码分析】calico node felix源码分析之一
  14. 用matlab绘制三维图和三视图
  15. android版本9是什么,安兔兔:81.9%的用户升级到了Android 9,你的手机是什么版本呢?...
  16. 线条边框简笔画图片大全_各种简笔画边框大全_边框简单又漂亮简笔画
  17. 阿里云国际站代理商:阿里云国际版香港轻量ECS服务器怎么样?
  18. 【扩展】Freemarker模板遍历集合实现下载word部分文字隐藏
  19. 【计算机组成原理 学习总结】第六章 总线系统(2)
  20. html emsp ensp nbsp; thinsp;空格到底怎么占用像素的

热门文章

  1. Google Code Jam 2015 Qualification Round: Problem A. Standing Ovation
  2. 【C++】运算符重载3
  3. 群晖摇身一变,手机备份保险箱闪亮登场!
  4. PHP (八种)数据类型
  5. Python类方法、静态方法、全局变量的使用
  6. 34 freertos任务通知--代替消息队列(任务邮箱)覆盖和非覆盖
  7. 视频网站中的推荐系统
  8. 解决Vercel托管项目后无法正常访问的问题
  9. GMT、UTC与24时区等时间概念
  10. matlab画动漫,matlab绘制gif