资源简介
参考《图像拼接的改进算法_方贤勇》论文及《最佳缝合线算法(图像融合)》博客整理出的缝合线拼图算法Matlab源代码,内含论文、源代码、测试图像及博客地址,调试可用,需自行修改其中文件路径
![](http://www.nz998.com/pic/36776.jpg)
代码片段和文件信息
clear;clc;
% 水平(左右)拼接
% dataA=imread(‘D:\YlinkSample\IDT\testpicture\test2\1003.JPG‘);
% dataB=imread(‘D:\YlinkSample\IDT\testpicture\test2\1002.JPG‘);
% rdata1 = -26; %重合区域宽度
dataA=imread(‘D:\YlinkSample\IDT\testpicture\1.JPG‘);
dataB=imread(‘D:\YlinkSample\IDT\testpicture\2.JPG‘);
rdata1 = -76; %重合区域宽度
A=rgb2gray(dataA);
B=rgb2gray(dataB);
%《图像拼接的改进算法》最佳缝合线算法 图像融合
%先根据之前得到的H矩阵计算重叠区域Rect
[HW~]=size(A);
L = W+1+rdata1;
R = W;
n = -rdata1;
%最终融合图的大小
Y=2*W+rdata1+1; %融合后图像宽度
D=zeros(HY-13); %融合后的图像
path=zeros(Hn);%放路径的矩阵,存放列数序号(1-n)
%放强度值 每条路径的强度值strength=color^2+geometry
color=zeros(1n);
geometry=zeros(1n);
strength1=zeros(1n);
strength2=zeros(1n);
Axdao = 0;
Aydao = 0;
Bxdao = 0;
Bydao = 0;
%计算第一行即初始化的强度值
i = 1;
for j=L:R
y=j-L+1; %对应B图的列数
color(y)=A(ij)-B(iy); %灰度值之差
if(j==L)
Bxdao=B(iy+1)+2*B(i+1y+1);
Bydao=B(i+1y)+2*B(i+1y+1);
Axdao=A(ij+1)+2*A(i+1j+1)-A(ij-1)-2*A(i+1j-1);
Aydao=2*A(i+1j-1)+A(i+1j)+2*A(i+1j+1);
elseif(j==R)
Axdao= -A(ij-1)-2*A(i+1j-1);
Aydao=2*A(i+1j-1)+A(i+1j);
Bxdao=B(iy+1)+2*B(i+1y+1)-B(iy-1)-2*B(i+1y-1);
Bydao=2*B(i+1y-1)+B(i+1y)+2*B(i+1y+1);
else
Axdao=A(ij+1)+2*A(i+1j+1)-A(ij-1)-2*A(i+1j-1);
Bxdao=B(iy+1)+2*B(i+1y+1)-B(iy-1)-2*B(i+1y-1);
Aydao=2*A(i+1j-1)+A(i+1j)+2*A(i+1j+1);
Bydao=2*B(i+1y-1)+B(i+1y)+2*B(i+1y+1);
end
geometry(y)=(Axdao-Bxdao)*(Aydao-Bydao);
strength1(y)=color(y)^2+geometry(y);
path(1y)=y;
end
color = color .* 0;
geometry = geometry .* 0;
%开始扩展 向下一行 从第二行到倒数第二行 最后一行单独拿出来 像第一行一样 因为它的结构差值geometry不好算
for i=2:H-1
%先把下一行的强度值全部计算出来 到时候需要比较哪三个就拿出哪三个
for j=L:R
x = i;
y = j-L+1;
color(y) = A(ij) - B(xy);
if(j==L)
Axdao=2*A(i-1j+1)+A(ij+1)+2*A(i+1j+1)-2*A(i-1j-1)-A(ij-1)-2*A(i+1j-1);
Bxdao=2*B(x-1y+1)+B(xy+1)+2*B(x+1y+1);
Aydao=-2*A(i-1j-1)-A(i-1j)-2*A(i-1j+1)+2*A(i+1j-1)+A(i+1j)+2*A(i+1j+1);
Bydao=-B(x-1y)-2*B(x-1y+1)+B(x+1y)+2*B(x+1y+1);
elseif(j==R)
Axdao=-2*A(i-1j-1)-A(ij-1)-2*A(i+1j-1);
Bxdao=2*B(x-1y+1)+B(xy+1)+2*B(x+1y+1)-2*B(x-1y-1)-B(xy-1)-2*B(x+1y-1);
Aydao=-2*A(i-1j-1)-A(i-1j)+2*A(i+1j-1)+A(i+1j);
Bydao=-2*B(x-1y-1)-B(x-1y)-2*B(x-1y+1)+2*B(x+1y-1)+B(x+1y)+2*B(x+1y+1);
else
Axdao=2*A(i-1j+1)+A(ij+1)+2*A(i+1j+1)-2*A(i-1j-1)-A(ij-1)-2*A(i+1j-1);
Bxdao=2*B(x-1y+1)+B(xy+1)+2*B(x+1y+1)-2*B(x-1y-1)-B(xy-1)-2*B(x+1y-1);
Aydao=-2*A(i-1j-1)-A(i-1j)-2*A(i-1j+1)+2*A(i+1j-1)+A(i+1j)+2*A(i+1j+1);
Bydao=-2*B(x-1y-1)-B(x-1y)-2*B(x-1y+1)+2*B(x+1y-1)+B(x+1y)+2*B(x+1y+1);
end
geometry(y)=(Axdao-Bxdao)*(Aydao-Bydao);
strength2(y)=color(y)^2+geometry(y);
e
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18509 2018-04-08 14:29 图像最佳缝合线拼接算法\1.jpg
文件 5045 2018-04-08 14:29 图像最佳缝合线拼接算法\2.jpg
文件 8723 2018-04-13 13:48 图像最佳缝合线拼接算法\bestlinefusionhorizontal.m
文件 59 2018-04-13 13:50 图像最佳缝合线拼接算法\参考博客.txt
文件 189438 2018-03-28 15:59 图像最佳缝合线拼接算法\图像拼接的改进算法_方贤勇.caj
目录 0 2018-04-13 13:50 图像最佳缝合线拼接算法
----------- --------- ---------- ----- ----
221774 6
- 上一篇:基于小波变换的多尺度图像边缘检测
- 下一篇:曲线及其包络线的画法 matlab
相关资源
- 基于sift算法的图像拼接286803
- 非常好用的matlab图像拼接程序
- 基于SURF特征点的图像拼接算法
- MATLAB小波变换图像拼接技术GUI版.zip
- Matlab实现SIFT三幅图像拼接
- 全景图像拼接代码MATLAB版本
- MATLAB 程序 实现图像拼接,自动匹配特
- 多幅图像拼接matlab实现
- 一种针对车载全景系统的图像拼接算
- 基于灰度匹配算法的简单拼接-matlab
- 基于matlab的图像拼接含matlab代码以及
- matlab实现sift算法的图像拼接
- matlab实现的sift的图像拼接
- ORB遥感全景图像拼接.rar
- 图像拼接程序
- 图像拼接 matlab程序代码
- 强行消除图像拼接产生的拼接缝
- matlab图像拼接算法
- 基于matlab的图像拼接
- 基于matlab块匹配的全景图像拼接.zip
- sift算法生成全景图matlab
- sift特征点检测及图像拼接
- 傅里叶梅林图像拼接MATLAB
- 基于harris角点特征提取的matlab图像拼
- matlab图像拼接
- 基于SIFT算法的图像拼接 matlab代码
- sift+ransac图像拼接matlab代码
- 基于sift算法的图像拼接
- SIFT算法的图像拼接
- 图像SURF特征提取(SURF extraction)
评论
共有 条评论