用MATLAB实现图像的拼接显示
一共四幅图像,图像大小不一样,将四幅图像均变成512*384大小,然后拼接为1024*748大小进行显示。...
一共四幅图像,图像大小不一样,将四幅图像均变成512*384大小,然后拼接为1024*748大小进行显示。
展开
2个回答
展开全部
看楼主的要求,似乎没楼上说的那么复杂。
楼主只是要求把四幅图片变成同样大小然后拼接起来就是了。
如果上述理解无误,那么实现并不困难,主要有以下几点需要注意:
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);
for i=1:4
% 读入图像数据
[X, map] = imread(imfile{i});
if size(X,3) == 1
% 有些灰度图像无map数据
if isempty(map)
map = gray;
end
% 转换为真彩色
X = ind2rgb(X,map);
end
% 调整图像大小,并转换数据格式
A{i} = im2double( imresize(X, [384 512]) );
end
% 拼接图像并显示
A = [A{1} A{2}; A{3} A{4}];
imshow(A)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询