我該如何imwrite
這個值[12 13.5; 15 107.75]
沒有改變imread
?imwrite在MATLAB中的雙重矩陣
我想保存我的信息。但如果我這個值,當我imread
這個矩陣,我有這個[12 13; 15 108]
。
我該如何imwrite
這個值[12 13.5; 15 107.75]
沒有改變imread
?imwrite在MATLAB中的雙重矩陣
我想保存我的信息。但如果我這個值,當我imread
這個矩陣,我有這個[12 13; 15 108]
。
這不能通過imwrite來完成,你可以嘗試功能fprintf。 http://cn.mathworks.com/help/matlab/ref/fprintf.html
(讓[12 13.5;15 107.75]
是A
。)
從imwrite
文檔:
imwrite(A,文件名)寫入圖像數據A由文件名指定的文件。 如果A的數據類型爲uint16,並且輸出文件格式支持16位數據(JPEG,PNG和TIFF),則將輸出16位值。
因此,您可以乘以A
100
然後將其轉換爲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所建議的那樣。
非常感謝你......它非常有用 – shiva
@shiva如果這對你有幫助,請選擇此答案作爲接受的答案(通過點擊答案分數計數器下面的標記)。它會幫助其他來這裏的人。 – Nishant