У меня есть набор значений между 0 и 1. После того, как я установил эти значения между 0 и 255, я хочу сохранить их как изображение в градациях серого в формате pgm. Проблема заключается в том, что после того, как я сохранить его как изображение значения я получаю, когда я прочитал изображение отличается от предыдущей матрицы со значениями от 0 до 255.Matlab сохраняет матрицу как изображение с разными значениями
Вот простой пример:
>> 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 не сохраняет мои ценности? это проблема конверсии?
Благодарим вас за эту информацию. Я знал это, но когда я сохраняю значения, масштабированные в [0,255] в файле, умножая значения на 255 и сравнивая их с масштабированием matlab, есть несколько различий в значениях. Это происходит потому, что я использую floor() для сохранения значений, а Matlab использует ceil(). И тебе спасибо! – mad
@mad Гош! Это ваш вызов. Обновлено с помощью редактирования. – jkshah