Октавские ошибки при попытке изучить сжатие изображений - PullRequest
0 голосов
/ 03 декабря 2009

Позвольте мне начать с того, что я ТЕБЯ ЛЮБЛЮ. Спасибо.

Следующий заказ бизнеса:

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). Это очень простая попытка отобразить изображение, которое было прочитано и сохранено в памяти. Любая помощь по решению этой проблемы будет высоко ценится. Спасибо!

1 Ответ

1 голос
/ 29 декабря 2009

Полагаю, когда вы читаете png-файл, убедитесь, что это файл в градациях серого. В противном случае есть 3 матрицы (RGB). Поэтому вы не можете использовать Gray Colormap.

Если 2Phone.png - цветное изображение, попробуйте (по крайней мере, это то, что я бы сделал в Matlab):

xin = imread('3Phone.png');
image(xin(:, :, 1);
colormap(gray(256));

Это будет отображать только матрицу R.

Или лучше, используйте RGB2Gray (Конечно, используйте эквивалент Octave).

...