您的位置首页生活快答

matlab图像拼接

matlab图像拼接

的有关信息介绍如下:

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);

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)