基于Matlab的图像拼接与拼接后平均剪切实现
本例程主要实现:两张有重叠部分的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的图像拼接与拼接后平均剪切实现相关推荐
- 基于Matlab的图像拼接计算机视觉课程设计
资源下载地址:https://download.csdn.net/download/sheziqiong/85824219 资源下载地址:https://download.csdn.net/downl ...
- 基于matlab的图象拼接--数字图像拼接技术
全景图(Panorama),或者说是图像拼接(Mosaic)技术是由于摄像器材的视角限制,不可能一次拍出很大图片而产生的.本文主要围绕拼接合成技术展开讨论,首先关注一下拼接的主要用途,再简单介绍拼接流 ...
- 基于MATLAB的图像拼接技术
第一章 绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学.计算机视觉.图像处理和计算机图形学研究中的热点.图像拼接解决 ...
- 基于MATLAB基础信号插值算法(后附MATLAB代码)
一.再MATLAB库中已有的插值算法: 1.分段线性插值: 利用每两个相邻的插值基点做线性插值: 分段线性插值具有很强的收敛性,在每个分段区间都是线性的: 在MATLAB中自带函数interp1(x, ...
- 基于MATLAB碎片拼接
该课题为基于matlab的图像拼接,采用的方法是块拼接,带GUI界面.另外可定制基于sift,haar,小波的拼接,可实现多副图的拼接,几百幅都无问题.资源下载链接: 下载地址
- 一种基于Matlab的快速鲁棒特征点(surf)的图像拼接技术
一.引言 快速鲁棒特征(Speeded-up robust feature,SURF)算法在图像匹配.模式识别.图像拼接等众多领域有着广泛的应用[1].有学者提出一种基于快速鲁棒特征(SURF)的眼底 ...
- 基于MATLAB/Simulink软件的单相光伏并网逆变器仿真,仿真中使用两级电路,前级BOOST升压后级光伏逆变并网
基于MATLAB/Simulink软件的单相光伏并网逆变器仿真,仿真中使用两级电路,前级BOOST升压后级光伏逆变并网,建立了光伏电池(PV)模型,同时搭建了两种最大功率点跟踪算法(MPPT),扰动观 ...
- 基于MATLAB Simulink的三相AC DC整流后的直流电机转速开环控制仿真模型
AC_DC_Machine:基于MATLAB Simulink的三相AC DC整流后的直流电机转速开环控制仿真模型. 仿真条件:MATLAB Simulink R2015b ID:2120650365 ...
- matlab知道破碎图序号复原,基于MATLAB研究碎纸片的拼接复原.docx
基于MATLAB研究碎纸片的拼接复原 基于 MATLAB 研究碎纸片的拼接复原晖,江彩云,朱存斌*李明珺,徐(安徽财经大学 统计与应用数学学院,安徽 蚌埠 233030)摘要:针对碎纸片自动拼接复原, ...
最新文章
- fast rcnn,faster rcnn使用cudann加速问题
- 【struts2】struts2的一些常用高级应用
- s6 android 7.0 国行,三星S6电信版/S6 Edge国行版升级安卓7.0
- 接口之用例编写、验证
- FL Studio中钢琴卷帘窗的工具的使用
- 使用Struts2框架开发租房系统(8)
- linux模拟键盘按键_Linux上的自动键盘按键
- 【资源下载】分享个嵌入式开发的入门教程(包含视频)
- 二分查找边界问题总结
- FFMPEG详细参数
- 关于 IBM Tivoli Storage Manager在Oracle中的应用
- Excel使用right函数截断数据,并覆盖原来的数据
- 【kubernetes/k8s源码分析】calico node felix源码分析之一
- 用matlab绘制三维图和三视图
- android版本9是什么,安兔兔:81.9%的用户升级到了Android 9,你的手机是什么版本呢?...
- 线条边框简笔画图片大全_各种简笔画边框大全_边框简单又漂亮简笔画
- 阿里云国际站代理商:阿里云国际版香港轻量ECS服务器怎么样?
- 【扩展】Freemarker模板遍历集合实现下载word部分文字隐藏
- 【计算机组成原理 学习总结】第六章 总线系统(2)
- html emsp ensp nbsp; thinsp;空格到底怎么占用像素的