① matlab拼接27个图像碎片程序
matlab拼接27个图像碎片程序,你这是2013年大学生数学建模大赛B题,我觉得这个题要用图像的字符识别,通过字符的结构进行度量,
关键是拼接的算法,你要设计合适的算法才能真正做到
imname = dir('.\*.bmp');%读入文件夹下的全部图像
im_num = length(imname);% 文件夹中图像的个数
im_temp = imread(imname(1).name,'bmp');%读入第一幅图像
[height,width] = size(im_temp);%得到图像的尺寸
DB(:,:,a) = zeros(height,width,im_num,'uint8');
% 读入全部图像
for a = 1:length(imname)
DB(:,:,a) = imread(imname(a).name,'bmp');%读取图像数据
%在此处也可以加入图像二值化代码
DB(:,:,a) = im2bw(DB(:,:,a) );
end
批量读入图片
用cat函数连接;
每个纸条的边界
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
灰度值就是0 255,你要二值化数也行用 im2bw
左边1*1900的图像就是 im(:,1);
请采纳我的答案!
我的代码是调试通过的
② matlab图像拼接程序
其实很简单的,看懂下面的语句:
PicName1='a.jpg'; % 要合并的图片1
PicName2='b.jpg'; % 要合并的图片2
PicOut='c.jpg'; %合并的结果
IV1=imread(PicName1); % 读入图片1
IV2=imread(PicName2); % 读入图片2
PicData=[IV1; IV2]; % 如果是纵向拼接用这个
PicData=[IV1 IV2]; % 如果是横向拼接用这个
imwrite(PicData, PicOut, 'Quality', 75); % 输出图形
打字不易,如满意,望采纳。
③ 用MATLAB实现图像的拼接显示
看楼主的要求,似乎没楼上说的那么复杂。
楼主只是要求把四幅图片变成同样大小然后拼接起来就是了。
如果上述理解无误,那么实现并不困难,主要有以下几点需要注意:
1、图像格式:由于图像格式包括索引色和真彩色这两大类不同的类型,所以需要统一转换一下才能拼接。这两类图像的判断根据是读入的数据是二维还是三维,对于二维的数据,如果调色板为空,则按照灰度图像处理。
2、数据格式:根据具体的图像文件格式不同,读入的数据可能是logical、uint8、uint16、uint32、single、uint64、double等不同的格式,要想进行拼接,需要转换为同一种数据类型。
3、注意图像的宽高顺序:512*384的图像应为[384 512]。
参考代码
%待拼接文件
imfile={'1.jpg','2.jpg','3.gif','4.png'};
%读入文件,并调整大小、转换格式
A=cell(2,2);
fori=1:4
%读入图像数据
[X,map]=imread(imfile{i});
ifsize(X,3)==1
%有些灰度图像无map数据
ifisempty(map)
map=gray;
end
%转换为真彩色
X=ind2rgb(X,map);
end
%调整图像大小,并转换数据格式
A{i}=im2double(imresize(X,[384512]));
end
%拼接图像并显示
A=[A{1}A{2};A{3}A{4}];
imshow(A)
④ 高分跪求图像拼接MATLAB源代码,基于特征点,算法任意
般图像拼接分为:特征点提取、特征点匹配、求解投影矩阵、拼接。
每一步都有比较经典的算法,就特征点提取、特征点匹配而言,比较经典的有SIFT算法
matlab中文论坛 搜索 “求高手帮忙简单调试一下图像拼接的matlab源程序!!
这个图像拼接的程序是基于特征点提取的,用的是SIFT算法,现在已经可以运行到特征点的提取和匹配,只是到了RANSAC这一步有点问题,但我不懂,相信你举手之劳就可以帮到我。跪求…… ”
没法发链接地址 你懂的
⑤ 数字图像的拼接算法技术研究 也是基于matlab的,要把2副图合成一幅图的那种算法,有提供程序要有图的
im2=imread(file1);%假定两图像大小完全一致
im1=imread(file2);%假定两图像大小完全一致
a=size(im1);
im=im1;
im(a(1)+1:2*a(1),:,:)=im2;
imshow(im)
⑥ MATLAB图像拼接问题
不么将才说变为灰度(推荐)
要不将灰度变为伪彩色
rgb2gray变为灰度函数
⑦ 在用matlab做图像拼接,怎么把两幅图片重叠的部分取出
给你提供个思路啊,你可以分别先把两幅图像绘出,figure(1)和figure(2),然后你可以都放大,分别在两个窗口里获取重叠部分对应相同的几个点(p1=get(gca,'CurrentPoint');%在图像坐标系内获取坐标,即矩阵行列号),然后根据这些点你可以对图像矩阵进行拼接操纵。比如图a的最右边和b的最左边重叠,把a的右边删掉,然后从b的相应位置开始接到a的右边。
⑧ matlab实现图像拼接
这个程序很壮观的
拍摄到的彩图
要做这些事情
十分复杂
20分
估计不会有人帮忙的
太难了
⑨ matlab图像分块,边缘检测,图像拼接代码
你可以试试下面的程序:
I=imread('myphoto.jpg'); % 假设要处理的图像是myphoto.jpg
heights=size(I,1); % 图像的高
widths=size(I,2); % 图像的宽
m=8; % 假设纵向分成8幅图
n=10; % 假设横向分成10幅图
% 考虑到rows和cols不一定能被m和n整除,所以对行数和列数均分后要取整
rows=round(linspace(0,heights,m+1)); % 各子图像的起始和终止行标
cols=round(linspace(0,widths,n+1)); % 各子图像的起始和终止列标
blocks=cell(m,n); % 用一个单元数组容纳各个子图像
for k1=1:m
for k2=1:n
blocks{k1,k2}=I(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:);
subimage=blocks{k1,k2};
% 以下是对subimage进行边缘检测
% 加入边缘检测的代码
% 以上是对subimage进行边缘检测
blocks{k1,k2}=subimage;
end
end
processed=I; % processed为处理后的图像,用原图像对其初始化
% 以下为拼接图像
for k1=1:m
for k2=1:n
processed(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:)=blocks{k1,k2};
end
end
figure,imshow(processed)
% 以上的程序已测试过,对灰度图像和真彩图像都可以运行。