如何把灰度圖變爲rgb圖像

rgb圖像化爲灰度圖是很容易的,matlab具有自帶函數。
灰度圖化爲rgb圖像:Google所得到的參考答案:
https://www.mathworks.com/matlabcentral/answers/377407-how-to-convert-grayscale-to-rgb
https://www.mathworks.com/matlabcentral/answers/69368-how-to-convert-gray-scale-image-into-rgb-image
https://www.cnblogs.com/minisculestep/p/4878894.html
翻譯如下:
問題:如何轉變灰度圖爲rgb圖像?

我使用下面腳本轉換灰度圖至rgb圖像:

[im, map] = imread('frame1.jpg');
if(isempty(map))                        % image is RGB or grayscale
  if(size(im, 3) == 1)                  % image is grayscale
      im = cat(3, im, im, im);
  end
else                                    % image is indexed
  im = ind2rgb(im, map);
end

其中 frame1是灰度圖。問題是:當我執行imshow(im)時,它仍然沒有顏色,但是size(im)是144 176 3,我很困惑,我怎麼才能得到有顏色的圖像呢?

答:

所有的代碼都在執行:

im=cat(3,im,im,im)

創建了144x176x3矩陣,其中im(:,:,1)與im(:,:,2)相同,im(:,:,3)相同。因此,紅色、綠色和藍色的分量是相同的,因此圖像仍然是“灰度圖”

您可以使用ind2rgb()應用各種顏色映射

map = hsv(256);                          % Or whatever colormap you want.
rgbImage = ind2rgb(im, map);             % im is a grayscale or indexed image.

使用顏色映射類型,因爲您對感興趣的顏色區域感興趣,我認爲任何顏色映射格式都足夠了。例子:

   close all
   clear 
   clc % just to clear things up
   I=imread('333.jpg');
   R=rgb2gray(I);                        % It is gray now
   y=colormap(hot(110));
   imwrite(R,y,'rgb.jpg','jpg');         % Re-change it to colored one 
   imshow('rgb.jpg');

如果您的初始圖像是單色的,則無法確定原始顏色。你不能。如果你只有灰度圖像就不是這樣了。
可以使用cat()將灰度圖像轉換爲RGB圖像:

rgbImage = cat(3, grayImage, grayImage, grayImage);

當然,它會看起來所有的灰度,即使它是一個“真正的顏色”RGB圖像-只是所有的“顏色”都是灰色的。您可以對灰度值應用僞顏色查找表,將每個灰度值映射到某個顏色,以得到一個多色圖像,如下所示:

rgbImage = ind2rgb(grayImage, jet(256));

然而,這些顏色並不是虹膜的原始顏色,就像你用彩色相機拍下的那樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章