[英]Matlab: paste RGB image into bigger image
我正在嘗試讀取圖像並將其粘貼到更大的圖像中,以后再粘貼其他圖像(相同的高度和寬度)。 我不得不說我沒有Matlab的經驗,所以歡迎提出任何建議。
現在,我正在創建一個更大的零矩陣,並將圖像的元素(RGB)粘貼到其中。 但是它並沒有按照我的意願顯示,而是顯示了大部分為白色的圖像:
更大是更大形象的名稱
[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)
一些圖像功能對數據類型敏感。 imread
為您提供了uint8類型的矩陣,而默認情況下, zeros
為您提供了double類型的矩陣。 imshow
(或image
或imagesc
)可以對所有double數據進行操作,但他們希望它在[0,1] $中而不是$ \\ in [0,255] $中。
嘗試這個:
[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
或在GUI的工作區部分中檢查im1是什么類型。 如果不是uint8,則相應地調整zeros
命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.