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