5.4. Функции imread и imwriteПри работе с файлами изображений, представленных в форматах bmp, png, gif, jpeg, tif и т.д., используются функции чтения
и записи
Здесь X – матрица точек изображения; map – цветовая карта изображения; filename – путь к файлу; fmt – графический формат файла изображения. Работа функции imread() была подробно рассмотрена в п. 3.4. Ниже приведен пример ее использования для загрузки растрового изображения
где A – матрица размером 1024х1024xN точек; map – цветовая карта загруженного изображения. Значение N показывает число байт, расходуемых на представление точки изображения. Например, если изображение представляется в формате RGB с 24 бит/пиксел, то N=3. Если же загружается изображение с 256 градациями серого (8 бит/пиксел), то N=1. После обработки изображение A можно обратно сохранить в файл, используя следующую запись:
В результате в рабочем каталоге MatLab будет сохранено изображение в формате bmp с исходной цветовой картой. Однако следует отметить, что если загруженное изображение A было преобразовано, например, в формат double
то непосредственная запись такой матрицы как изображение невозможно. Дело в том, что значения матрицы A должны соответствовать целым числам в диапазоне от 0 до 255, т.е. являться байтовыми числами. Этого можно добиться преобразованием типов при записи изображения в файл следующим образом:
Здесь uint8 – беззнаковый целый тип в 8 бит. В качестве переменной map можно указывать любые другие цветовые карты (hot, hsv, gray, pink, cool, bone copper) отличные от исходной. Например, для записи изображения в 256 градациях серого можно записать
При этом матрица A должна иметь размерность MxNx1, т.е. один байт на пиксел.
|