3
,當我寫這些命令MATLAB RGB值兩難
out = ones(size(ben))
imshow(out)
輸出是一個白色畫面,但我期待幾乎一團漆黑,因爲RGB值1,1,1。當我給255,255,255時,它也會給出一張白色圖片。這不是一個困境嗎?
,當我寫這些命令MATLAB RGB值兩難
out = ones(size(ben))
imshow(out)
輸出是一個白色畫面,但我期待幾乎一團漆黑,因爲RGB值1,1,1。當我給255,255,255時,它也會給出一張白色圖片。這不是一個困境嗎?
嘗試out = ones(size(ben), 'uint8');
ones()
默認創建雙打的陣列。當imshow()
獲得一個雙精度數組時,它假定像素值的範圍介於0和1之間,並將白色分配給大於1的任何值。但是,如果將uint8
的數組傳遞給imshow()
,它將假定範圍在0和255.
您也可以嘗試使用imagesc();
而不是imshow()
,但您可能需要在病房後執行colormap gray
以獲取灰度圖像。
另一種選擇是在顯示之前重新縮放圖像:
imshow(out/max(out(:)));
實際上,在一個8位圖像時,值從0到255也行,以顯示縮放後的圖像,則可以調用'imshow (out,[])' – Jonas 2010-12-21 01:11:11
好點!我總是試着記住Matlab使用基於1的數組索引,而且我猜這次我已經過分了...... :) – Dima 2010-12-21 05:24:53