簡體   English   中英

Matlab:將RGB圖像粘貼到更大的圖像中

[英]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 (或imageimagesc )可以對所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM