2014-07-04 117 views
-3

我試圖做這樣的圖像上的一些圖像處理:MATLAB:轉換一個3信道24位的bmp圖像分成1個信道16位的BMP圖像

enter image description here

這是一個24位的BMP圖像。

在MATLAB中我得到了以下信息:

>> x = imread('1.bmp'); 
>> size(x) 

ans = 

    200 150  3 

這表明它有3個通道,一個用於每個R,G和B.

這意味着每個像素將具有的8三個分量每個位。

我想要做的是使用MATLAB或OpenCV將此圖像轉換爲16位,一個通道(即一種顏色),然後進行一些圖像處理。我的圖像處理算法正在處理16位圖像。

+0

你的意思是像[rgb2gray](http://www.mathworks.de/de/help/images/ref/rgb2gray.html)或其他不同的東西? –

+0

@RogerRowland目前還不清楚在結果圖像中來自每個像素的位數(來自rgb2gray)。 – user2799508

+0

轉換後它將成爲'double'。 –

回答

3

由於即使在RGB中,圖像也是灰度,所以只需要其中一個通道具有灰度圖像。您還可以使用rgb2gray()功能。

然後,您可以使用im2uint16()將其轉換爲16位無符號整形圖像。

+0

感謝您的快速回復。順便說一句如何保存這個最終的16位圖像?這將是我將發送給我的老闆的形象。 – user2799508

+0

imsave? Easy peasy –

+0

'imsave'用於保存在圖形窗口中顯示或存儲在手柄中的圖像。如果您有一個包含圖像數據的變量,請使用'imwrite'。 – rayryeng