matlab裡面灰度圖與rgb轉化的問題

時間 2021-09-07 16:13:25

1樓:

樓上說的很有道理,我測試了下,你用rgb2gray()得到的從,colormap矩陣(一般是64行3列)完全不相等,

>> b=rgb2gray(a);

>> m1=colormap;

>> m2=colormap(gray);

>> m1==m2;

>> c=(m1==m2);

這是我測試的程式**,c是判斷相等的矩陣;我的a是一個彩圖矩陣

我如果沒記錯的話原因是這樣的,兩種函式的變灰度圖的方法不一樣,rgb2gray()這種是

用r,g,b分量進行亮度計算,由rgb到yuv(ycbcr)的進行轉換,計算y的公式就是了,因為ycbcr空間中,y分量就是原圖的灰度拷貝

|y| | 0.299 0.587 0.114 | |r|

| i| = | 0.596 -0.274 -0.322 | |g|

|q| | 0.211 -0.523 0.312 | |b|,

colormap(gray)是以一個固定的顏色矩陣作為顏色矩陣,那麼他的顏色矩陣永遠不會變,而rgb2gray()的顏色矩陣可能隨資料變化而變化

我覺得rgb2gray要準確點,colormap(gray)算作偽彩色編碼,有點人為的性質

2樓:匿名使用者

如果直接

colormap jet 或者gray 只是影響呈現的顏色,不影響資料的色矩陣c

問題在於rgb2gray, 這恐怕會要改變色矩陣c的元素數值

matlab 將rgb轉化為灰度圖後怎麼把灰度圖變為3通道?

3樓:匿名使用者

灰度圖沒有三通道的,如果非要整一個:

>> i=imread('lena.bmp');

>> size(i) % 證明是灰度圖ans =

256 256

>> i3(:,:,1)=i;

>> i3(:,:,2)=i;

>> i3(:,:,3)=i;

>> imshow(i3); %顯示>> size(i3) %證明是三通道**ans =

256 256 3

matlab中,我用函式rgb2gray,為什麼不能將rgb影象轉換為灰度影象?是影象用錯還是matlab裝的不完整? 20

4樓:匿名使用者

我呼叫rgb2gray函式之後報錯,顯示error in ==> rgb2gray at 42

t = inv([1.0 0.956 0.621; 1.0 -0.272 0.647; 1.0 -1.106 1.703]);為什麼呢

5樓:匿名使用者

我今天也碰到了這樣的問題,後來弄明白了,本身函式沒有錯,但是因為有rgb三個引數,所以直接處理黑白影象函式會報錯。我猜你跟我一樣,呼叫了一張黑白**做rgb2gray處理了

6樓:匿名使用者

呼叫格式:

i = rgb2gray(rgb) 將真彩色rgb影象轉換成灰度影象。(rgb並不發生變化)

newmap = rgb2gray(map)   返回一個灰度調色盤。

相關函式: ind2gray, mat2gray, ntsc2rgb, rgb2ind, rgb2ntsc

程式示例

% 1. 顯示rgb真彩色影象

figure('name', '顯示真彩色影象')imshow(imgrgb)

% 2. 顯示灰度影象

imggray = rgb2gray(imgrgb);

figure('name', '顯示灰度影象')imshow(imggray)

matlab 將rgb轉化為灰度圖後怎麼灰度圖變為3通道的灰度圖

7樓:匿名使用者

灰度圖沒有三通道的,如果非要整一個:

>> i=imread('lena.bmp');

>> size(i) % 證明是灰度圖ans =

256 256

>> i3(:,:,1)=i;

>> i3(:,:,2)=i;

>> i3(:,:,3)=i;

>> imshow(i3); %顯示>> size(i3) %證明是三通道**ans =

256 256 3

matlab如何將彩色圖變為灰度圖

很簡單,將以下語句貼上到一個新建的matlab函式檔案裡並取名為rgb2gray2.m 預設即是如此 function j rgb2gray2 i j 0.29894 i 1 0.58704 i 2 0.11402 i 3 接下來讀入一幅rgb影象到矩陣i中後呼叫j rgb2gray2 i 即可,j...

matlab 如何將彩圖轉成灰度圖

要當技術宅 需要準備的工具 電腦,matlab軟體。1 首先在matlab祝主介面輸入一下指令清屏 clear clc 2 將自己準備的 放在matlab的工作目錄中,直接將 複製到工作目錄中。3 接著在主介面輸入一下指令,將 轉換成資料 data imread 資料夾圖示.bmp 4 雙擊工作空間...

如何用matlab把bmp格式變成灰度影象

bmp的影象是彩色的,也就是說有rgb三個波段,讀出的影象資料是一個m n 3的陣列,如果想把它變成灰度影象的,只要分離出任意rgb中的一個分量即可,例如你的影象是1.bmp,x imread 1.bmp imshow x y x 1 imshow y 就可以了,不知道你是想怎樣把影象變成灰度的,如...