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 就可以了,不知道你是想怎樣把影象變成灰度的,如...