Matlab:将RGB图像粘贴到更大的图像中

时间:2013-09-30 20:54:56

标签: image matlab rgb paste

我正在尝试阅读图像并将其粘贴到更大的图像中,稍后我将粘贴其他图像(相同的高度和宽度)。我不得不说我在Matlab没有经验,所以欢迎任何建议。

现在我正在创建一个更大的零矩阵并将图像的元素(RGB)粘贴到其中。但它没有像我想要的那样显示,它显示了一个大部分白色的图像:

Bigger是较大图片的名称

[im1 map1] = imread('/12937.png');
[height width rgbsize]=size(im1)
bigger=zeros(height+200,width+200,3);
figure('name','original');imshow(im1) %displays my image correctly
bigger(1:height,1:width,:)=im1(:,:,:); 
figure('name','after');imshow(bigger); %displays a mostly white image with dark right and bottom borders (the extra size)

1 个答案:

答案 0 :(得分:1)

某些图像功能对数据类型很敏感。 imread为您提供了类型为uint8的矩阵,而默认情况下,zeros为您提供double类型的矩阵。 imshow(或imageimagesc)可以使用所有双倍数据进行操作,但是他们希望在[0,1] $中使用$ \而不是在[0,255] $中使用$ \。 / p>

试试这个:

[im1 map1] = imread('/12937.png');
[height width rgbsize]=size(im1)

% note: initialise the data type as well as the size
bigger=zeros(height+200,width+200,3, 'uint8');

figure('name','original');imshow(im1) 
bigger(1:height,1:width,:)=im1(:,:,:); 
figure('name','after');imshow(bigger); 

您可以使用命令whos检查im1的类型,或查看GUI的工作区部分。如果它不是uint8,则相应地调整zeros命令。