2011-10-05 276 views
0

我想從matlab中的一個稱爲metamorph的成像軟件實現顏色組合功能。我有三個uint16位文件(R,G和B)。我需要將它們轉換爲12位和然後將它們組合成RGB image.metamorph將16位文件轉換爲12位,然後從三個12位文件創建RGB圖像。我的代碼如下。我不太清楚如何轉換16位圖像文件爲12位。使用matlab將雙精度轉換爲12位

C1 = imread('metamorph/R.tif',3); 
    C2 = imread('metamorph/G.tif',3); 
    C3 = imread('metamorph/B.tif',3); 

    R=mat2gray(C1); 
    G=mat2gray(C2); 
    B=mat2gray(C3); 

    rgb1=cat(3,R,G,B); 
    imshow(rgb1) 

任何幫助,非常感謝。

感謝

+0

我會將12位圖像轉換爲RGB。 – user970044

+0

我試圖從一個叫做metamorph的成像軟件中實現顏色組合功能。我有三個uint16位文件(R,G和B)。我需要將它們轉換爲12位,然後將它們組合成RGB image.metamorph將16位文件轉換爲12位,然後從三個12位文件創建RGB圖像。這更清晰。 – user970044

+0

注意你的問題有一個「編輯」鏈接;使用它來添加您的新信息的問題,使其更加明顯。 –

回答

1

我不認爲MATLAB有12位數據類型(這將是每像素顏色一個和半字節)。當然,你可以擴展你的雙倍數據以適應一個12位整數:

rgb12= round(rgb1/max(rgb1(:))*(2^12-1)); %# scale & round image values to 12 bit 

...但隨後真正的問題是什麼好做那些:

  • 你要導出到一些12位RGB文件格式? imwrite可以顯然做12bit JPEG,但我不確定這是否是12位每種顏色。
  • 或者你想在MATLAB中保存RAM嗎?在這種情況下,我不確定是否有明智的方法來做到這一點。
相關問題