2016-05-30 72 views
1

我該如何imwrite這個值[12 13.5; 15 107.75]沒有改變imreadimwrite在MATLAB中的雙重矩陣

我想保存我的信息。但如果我這個值,當我imread這個矩陣,我有這個[12 13; 15 108]

回答

2

(讓[12 13.5;15 107.75]A。)

imwrite文檔:

imwrite(A,文件名)寫入圖像數據A由文件名指定的文件。 如果A的數據類型爲uint16,並且輸出文件格式支持16位數據(JPEG,PNG和TIFF),則將輸出16位值。

因此,您可以乘以A100然後將其轉換爲uint16。你會得到[1200 1350;1500 10775]。把它寫成(JPEG, PNG, or TIFF)例如。 imwrite(A,'image.jpeg')

現在imread('image.jpeg')將返回16-bit整數。將它們轉換爲double,然後除以100以獲得原始數據。 (例如,out = double(imread('image.jpeg'))/100

注意:可用16位表示的最高值是65536。因此,這意味着您在放大後輸入的數字必須小於65536,否則您將丟失信息。如果您使用的是雙倍數less that 255 with precision 2 or less(小數點後兩位),那麼放大後的最高數值爲25599,小於65536,因此沒有問題。只要注意輸入值是否有不同的範圍或精度。

不過,我想你應該使用fprintf將數據寫入文件中,正如T. Huang所建議的那樣。

+0

非常感謝你......它非常有用 – shiva

+0

@shiva如果這對你有幫助,請選擇此答案作爲接受的答案(通過點擊答案分數計數器下面的標記)。它會幫助其他來這裏的人。 – Nishant