matlab实现图像的拼接,MATLAB实现图像拼接算法(求助)
毕设要用到MATLAB实现一个图像拼接算法,看了老师给的一个例子,对里面的很多代码的作用、用法、意义等都不懂,希望各位高手给点建议或者提供点资料~
下面是其中一个 .m 文件的代码~
A=imread('view1.bmp');
figure,imshow(A)
title('源图像A')
B=imread('view2.bmp');
[high,wid]=size(A); %求出第一幅图像的长和宽(size 数组维数 )
A1=double(A);
B1=double(B);
B2=B1;
A2=A1;
sub_A=A1(high/2-39:high/2,3*wid/4:3*wid/4+39);
sub_A=A1(high/2-39:high/2,end-39:end);
sub_B1=B1(11:50,11:50);
mod1=sub_A-sub_B1; %求出第一幅图像的固定两列的象素差值
mat1=sum(sum(mod1.*mod1)); %求出第一幅图像的两列的取出的所有象素的差的平方和
mat_best=mat1;
for x1=1:40:wid-20 %在水平方向上搜索间隔距离相等的两列的象素求其象素差值
for y1=1:40:high-40
sub_B=B1(y1:y1+39,x1:x1+39);
mod=sub_A-sub_B;
mat=sum(sum(mod.*mod));
if mat<=mat_best
mat_best=mat;
xx=x1; %定位到该搜索方向上最佳匹配所在的位置
yy=y1;
end
end
end
x=xx;
y=yy;
for x2=xx-30:xx+40 %在垂直方向上搜索间隔距离相等的两列的象素,求其象素差值
for y2=yy-20:yy+80
sub_B2=B1(y2:y2+39,x2:x2+39);
mod2=sub_A-sub_B2;
mat2=sum(sum(mod2.*mod2));
if mat2<=mat_best
mat_best=mat2;
x=x2; %定位到该搜索方向上最佳匹配所在的位置
y=y2;
end
end
end
x=140;
[high2,wid2]=size(A2);
a1=A2(1:high2,wid-x+1:wid);
b1=B2(1:high2,1:x);
a=double(a1);
b=double(b1);
d1O=linspace(1,0,x); %在1和0之间产生x行向量
d=1:high2;
d1=d1O';
[X1,y1]=meshgrid(d1,d); %meshgrid 为三维图形生成XY矩阵
im1=a.*X1;
d20=linspace(0,1,x);
d2=d20';
[X2,y2]=meshgrid(d2,d);
im2=b.*X2;
im11=uint8(im1);
im22=uint8(im2);
im3=imadd(im11,im22);
a_b=imadd(im11,im22);
aa=A2(1:high2,1:wid-x);
bb=B2(1:high2,x:wid);
D2=[aa a_b bb];
D2=[aa(:,1:wid2-x) a_b bb];
imwrite(D2,'6.bmp');
[本帖最后由 mooni 于 2009-4-21 18:16 编辑]
matlab实现图像的拼接,MATLAB实现图像拼接算法(求助)相关推荐
- matlab中图像轮廓变细,Matlab中,用bwmorph函数提取二进制图像的轮廓
Matlab中bwmorph函数在提取二进制图像的轮廓如下: 语法: BW2 = bwmorph(BW1,operation) : BW2 = bwmorph(BW1,operation,n) : n ...
- matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)
本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...
- matlab dicom图像异常,用Matlab处理Dicom图像
最近在处理CT图像时,CT图像是对人体进行逐层扫描的,在图像有很多不需要的部分,比如肋骨部分就夹杂在里面,导致三维重建出来的图像有很多不需要的部分.很不好处理. 于是,我就想了了简单方法,对一张一张的 ...
- matlab 梯度图像,快速计算matlab中图像的梯度
感谢您的所有答案和有用的建议.我采纳了pseudoDust的建议,Hugues,Dima和高性能标记并写我自己的代码.下面我的代码中给出: clc;clear all;close all; x=32; ...
- 怎样用matlab实现图像的缩放,matlab实现图像缩放
[实例简介]不调用方法,手动实现图像缩放 [实例截图] [核心代码] % MATLAB script for Assessment Item-1 % Task-1 clear; close all; ...
- matlab给图像加云,matlab怎么给图像加雾
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 % -------------------------------------------------------------------- % 雾化处理 ...
- matlab给图像加网格,matlab把图像进行网格化,或者是在图像中画网格
by:黄光耀 % %%%%%%%%%%%画网格%%%%%%%%%% % %%%%%%%%%%把带瓶盖的托盘完全分割开%%%%%%%%% % close all % clc % clear % %% 读 ...
- matlab字符串和变量拼接,matlab中字符串拼接方法
我们经常遇到字符串拼接,下面介绍三种字符串拼接的方法: 1.使用中括号[] 如: a = 'string_1'; b = 'string_2'; c = [a,b] 运行结果如下: 2.使用sprin ...
- 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建
%% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...
- MATLAB图像融合拼接
MATLAB图像融合拼接 本文说明的内容是图像拼接,采用基于特征点的匹配方法将两张定点拍摄的照片进行拼接,合成一张图,将全景图生成简化成两张图片的拼接,具体可以分为以下几点: 掌握图像灰度化.图像投影 ...
最新文章
- c++深拷贝和浅拷贝
- SpringMVC异常处理机制详解[附带源码分析]
- webpack基础概念
- 为什么375×667是移动端原型设计的最佳分辨率:flutter 设计稿尺寸最好也是375×667...
- c 结构体 不允许使用不完整的类型_.NET Core 基础类型介绍
- EF中使用SQL语句或存储过程
- Mac使用NDK编译FFmpeg4.0.2单独so库(验证可用)
- loadGrid layui
- 关于U盘不能新建文件夹
- 无插件使用Eclipse和Resin调试WEB应用(Debug Web App In Ecli...
- 李彦宏:我不是传奇(网络转载)
- labelImg打标签教程
- 使用VPS时的注意事项
- 西门子PLC S7-200和S7-300有什么差别?如何进行远程上下载?
- zip直链生成网站_调优-WEB资讯专栏-DMOZ中文网站分类目录
- Android中 Download Manager系统下载管理器在Android 10系统中无法使用的情况
- 初学前端,学习路线图必不可少,更有【95页】初级前端模块笔记!
- 元宵节就要到了,手把手教你用Python打造一款3D花灯
- 科技爱好者周刊(第 153 期):机器翻译是对译者的侮辱吗?
- Java编写简易计算器