2013-05-03 59 views
1

簡介非整數圖像如何表示?

到計算機,數字灰度圖像被表示爲整數矩陣,其中maximim數目(這是依賴於整數精度)表示黑色的0是白色的。

enter image description here

下面是其中用於整數,並澆鑄到浮子當圖像的表示。

enter image description here

int 
array([[6, 1, 1, 0, 6, 4], 
     [0, 1, 2, 7, 5, 2], 
     [0, 4, 6, 6, 3, 4], 
     [1, 1, 2, 6, 7, 0], 
     [3, 6, 6, 5, 5, 3]]) 

float 
array([[ 6., 1., 1., 0., 6., 4.], 
     [ 0., 1., 2., 7., 5., 2.], 
     [ 0., 4., 6., 6., 3., 4.], 
     [ 1., 1., 2., 6., 7., 0.], 
     [ 3., 6., 6., 5., 5., 3.]]) 

問題

我一直與SVD,以及作爲結果,得到的圖像,其矩陣表示由花車。它可以從matplotlib中打印出imshow

灰度圖像值浮動時,「亮度值」映射如何工作?

+0

燦你不是通過創建一個混合了黑色/白色/中間陰影灰色的圖像來爲你自己確定這一點嗎? – Vicky 2013-05-03 08:53:29

+0

@Vicky不,不是。我已根據您的評論更新了該問題。爲什麼表示不同,不應該最小亮度階躍變化? – TheMeaningfulEngineer 2013-05-03 09:16:01

+0

它看起來像imshow()的工作方式,我會在一會兒發佈答案。 – Vicky 2013-05-03 09:23:56

回答

1

根據http://www.weizmann.ac.il/matlab/toolbox/images/imshow.html

imshow(I,n)的顯示輝度圖像I與 灰色的n個離散水平。如果省略n,則imshow會在24位顯示器上使用256灰度級,在其他系統上使用 或64灰度級。

imshow(I,[low high])顯示I作爲灰度強度圖像, 指定I的數據範圍。低值(和低於低值的任何值)顯示爲黑色,高值高於 的任何值都高於)顯示爲白色,並且中間的灰度值顯示爲 。 imshow使用默認灰度級數 。如果對[high high]使用空矩陣([]),則imshow使用 [min(I(:))max(I(:))]; I中的最小值顯示爲黑色,並且 的最大值顯示爲白色。

imshow(BW)顯示二進制圖像BW。 0的值顯示爲黑色, ,值1顯示爲白色。

因此,它取決於你如何調用imshow()來解釋圖像的顯示方式。如果用[low,high]的空矩陣調用它,它將只使用數組中的最大值和最小值。

+0

感謝您的重播。我是,但是使用'matplotlib'的版本,一個python繪圖庫。但是那回答了我的問題。它基本上總是得到離散化,並且一旦圖像處理完成,就使用浮點數作爲開銷。 – TheMeaningfulEngineer 2013-05-03 14:32:00

1

matplotlib映射值使用colormap(doc)類(和它的子類)顏色和Normalize(doc)類(和它的子類)。基本想法是,normalize將您給它的任何輸入轉換爲在[0, 1]範圍內的浮動。有各種各樣的線性和非線性的方式(例如,實現伽瑪校正)這樣做,那麼將colormap類覆羽標量範圍[0, 1] - >rgb值,並能做到這一點的任何映射你想(gallery)