我有一組介於0和1之間的值。將這些值置於0和255之間後,我想將它們保存爲pgm格式的灰度圖像。問題是,當我將其保存爲圖像,當我讀到像我得到的值從值0和255Matlab將矩陣保存爲具有不同值的圖像
之間。在此之前的矩陣不同的是一個簡單的例子:
>> a=[0.5,1,0.3]
a =
0.5000 1.0000 0.3000
>> b=single(floor(255 * a))
%these are the values I want in the image
b =
127 255 76
imwrite(b, 'test.pgm');
% i don't want these values!!!
c=imread('test.pgm')
c =
255 255 255
發生了什麼事?爲什麼matlab不保存我的值?這是一個轉換問題嗎?
感謝您提供此信息。我知道這一點,但是當我通過將值乘以255並將其與matlab縮放比較將[0,255]中縮放的值保存在文件中時,這些值之間存在一些差異。發生這種情況是因爲我使用floor()來保存值,Matlab使用ceil()。也謝謝你! – mad
@mad Gosh!這是你的電話。更新我的編輯。 – jkshah