Неподдерживаемая ошибка измерения с функцией imshow - PullRequest
0 голосов
/ 27 марта 2012

Я пытался показать изображение в Matlab. Размеры изображения были <15360x15360x3 uint8>, поэтому, когда я показал это в Matlab, у меня было много проблем с использованием процессора и оперативной памяти. Я не мог масштабировать, перемещаться и выполнять другие задачи поэтому я изменил размер изображения с помощью краски Нет, проблема в том, что после изменения размеров изображения получим <7680x7680x4 uint8>, и когда я использую «imshow», я сталкиваюсь с ошибкой ??? Ошибка при использовании ==> imageDisplayValidateParams> validateCData на 114 Неподдерживаемое измерение Это из-за 4 У кого-нибудь есть идеи, что я могу сделать, чтобы решить эту проблему?

Ответы [ 2 ]

7 голосов
/ 27 марта 2012

Это пятый раз, когда вы отправили вопрос о наборе инструментов для обработки изображений сегодня вечером.Я настоятельно рекомендую вам начать чтение документации для используемых вами функций!

В этом случае doc imread даст вам следующий фрагмент:

imread

Считывание изображения из графического файла Синтаксис

A = imread(filename, fmt)
[X, map] = imread(...)
[...] = imread(filename)
[...] = imread(URL,...)
[...] = imread(...,Param1,Val1,Param2,Val2...)

Описание

A = imread(filename, fmt) считывает изображение в градациях серого или цветное изображение из файла, указанного в имени файла строки.Если файл не находится в текущей папке или в папке на пути MATLAB, укажите полное имя пути.

Текстовая строка fmt указывает формат файла по его стандартному расширению.Например, укажите «gif» для файлов графического формата обмена.Чтобы увидеть список поддерживаемых форматов с их расширениями, используйте функцию imformats.Если imread не может найти файл с именем filename, он ищет файл с именем filename.fmt.

Возвращаемое значение A - это массив, содержащий данные изображения.Если файл содержит изображение в градациях серого, A представляет собой массив M-by-N.Если файл содержит изображение в истинном цвете, A является массивом M-by-N-by-3.Для файлов TIFF , содержащих цветные изображения, использующие цветовое пространство CMYK , A представляет собой массив M by N * 4 * .См. TIFF в разделе «Информация о формате» для получения дополнительной информации.

Microsoft Paint изменяет формат файла TIFF при его сохранении.Это та же самая проблема, с которой вы столкнулись в вашем другом вопросе .Решение состоит в том, чтобы использовать другую программу для редактирования изображений, например GIMP .

0 голосов
/ 27 марта 2012

Вы можете уменьшить размер изображения в Matlab:

, сначала отфильтровать изображение (необязательно):

sigma = 1;
flt = fspecial('gaussian', (2 * sigma + 1) * [1, 1], sigma);
img_filt = imfilter(img, flt, 'symmetric');

, а затем повторно сэмплировать изображение через каждые частоты:

freq = 2;
sub_img = img_filt (1 : freq : end, 1 : freq : end, :);

Не думаю, что краска делает что-то умнее, когда изменяет размеры изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...