Растровые изображения состоят из двух вещей.Первый: 3 матрицы с интенсивностью цвета, градуированные как uint
, числа от 0 до 255. Второй: заголовок, содержащий информацию о размере, глубине цвета, длине файла и т. Д.
Ваша программа не создает правильные изображения, потому что онаотсутствует заголовок.
Относительно процедуры matlab:
Используя imread
для изображения RGB, вы автоматически создаете матрицу.Если вы преобразуете его в оттенки серого с помощью rgb2gray
, у вас будет одна матрица uint
(без каких-либо дополнительных слоев).
Если вы хотите сохранить изображение после обработки, просто используйте:
I = imread('ut.jpg');
% Convert, do smth e.g. I_new = rgb2gray(I);
filename = 'myNewImage.jpg';
imwrite(I_new,filename);
Используя imwrite
, вы автоматически создаете правильный заголовок.