我已經正被保存在軸MATLAB GUI保存圖像使用imwrite MATLAB
file = 'C:\Documents and Settings\Home\Desktop\new.bmp';
imwrite(handles.fname, file);
imfinfo(file)
handles.fname
了索引圖像的索引圖像。以上代碼將圖像以24位深度的BMP格式保存到桌面。但我需要保存在8位深度。我應該在代碼中做些什麼改變?
我已經正被保存在軸MATLAB GUI保存圖像使用imwrite MATLAB
file = 'C:\Documents and Settings\Home\Desktop\new.bmp';
imwrite(handles.fname, file);
imfinfo(file)
handles.fname
了索引圖像的索引圖像。以上代碼將圖像以24位深度的BMP格式保存到桌面。但我需要保存在8位深度。我應該在代碼中做些什麼改變?
檢查imwrite
後更仔細地發現BMP選項不支持寫入選項'bitdepth'。
,爲了轉換爲8位單色(例如見here),你可以嘗試
imwrite(rgb2gray(im2uint8(handles.fname)), file)
有轉換比rgb2gray
至單色等,其中使用了亮度通道的other方式。
如果你想減少顏色深度有一個環節here解釋如何可以實現與
new_4bit=uint8(16*(round((double(original)+1)/16)-1));
new_3bit=uint8(32*(round((double(original)+1)/32)-1));
這是假定原來是一種UINT8圖像。
編輯
我刪除uint8
轉換語句。在執行此類操作之前,應檢查圖像是否爲double或uint8,並根據需要縮放值。我添加了im2uint8
,它適應不同的輸入數據類型。
是否可以將'bitdepth'應用於BMP格式? – Adiel
@Adiel該文檔指出'imwrite'支持「BMP 1位,8位和24位未壓縮的圖像」,但正確的選項不是「bitdepth」。 –
@Chethan我無法訪問你鏈接到的圖像... –
要獲得8位圖像,是要減少顏色深度還是轉換爲灰度? –