用MATLAB实现图像的拼接显示

一共四幅图像,图像大小不一样,将四幅图像均变成512*384大小,然后拼接为1024*748大小进行显示。... 一共四幅图像,图像大小不一样,将四幅图像均变成512*384大小,然后拼接为1024*748大小进行显示。 展开
 我来答
tianxiawulang
2013-12-20 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2325万
展开全部

看楼主的要求,似乎没楼上说的那么复杂。

楼主只是要求把四幅图片变成同样大小然后拼接起来就是了。

 

如果上述理解无误,那么实现并不困难,主要有以下几点需要注意:

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)
百度网友9ce4060
2013-12-19 · 超过20用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:38.1万
展开全部
这个...20分实在太少了
这里面涉及到重采样、特征匹配, 甚至纠正、配准、拼接处处理等等。
每一步都会有好多算法,这个东西写好了都可以博士论文了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式