Октавные ошибки при попытке изучить сжатие изображения
-
12-09-2019 - |
Вопрос
Позволь мне начать с того, что я СКАЖУ, что ЛЮБЛЮ ТЕБЯ.Спасибо.
Следующий порядок ведения бизнеса:
octave-3.2.3:8> xin = imread('3Phone.png');
octave-3.2.3:9> colormap(gray(256));
octave-3.2.3:10> image(xin);
error: invalid value for array property "cdata"
error: set: expecting argument 2 to be a property name
error: set: expecting argument 4 to be a property name
error: set: expecting argument 6 to be a property name
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/image/__img__.m at line 57, column 7
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/image/image.m at line 75, column 5
error: A(I): Index exceeds matrix dimension.
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/__go_draw_axes__.m at line 383, column 22
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/__go_draw_figure__.m at line 92, column 3
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/gnuplot_drawnow.m at line 91, column 5
octave-3.2.3:10>
Я использую Octave 3.2.3 на Mac OS X (Snow Leopard).Это очень простая попытка отобразить изображение, которое было считано и сохранено в памяти.Мы были бы очень признательны за любую помощь по устранению этой проблемы.Спасибо!
Решение
Мое предположение, когда вы читаете файл png - Убедитесь, что это файл в оттенках серого.В противном случае имеется 3 матрицы (RGB).Поэтому вы не можете использовать Серую цветовую карту.
Если 2Phone.png - это цветное изображение, попробуйте (по крайней мере, это то, что я бы сделал в Matlab):
xin = imread('3Phone.png');
image(xin(:, :, 1);
colormap(gray(256));
Это привело бы к отображению только матрицы R.
Или лучше, используйте RGB2 Серый (Конечно, используйте эквивалент Octave).