views:

206

answers:

1

Hey Folks,

Let me start by saying I LOVE YOU. Thank you.

Next order of business:

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>

I am using Octave 3.2.3 on Mac OS X (Snow Leopard). This is a very basic attempt to display an image that has been read and stored memory. Any help on fixing this problem would be much appreciated. Thanks!

+1  A: 

My guess, When you read a png file - Make sure it's a grayscale file. Otherwise there are 3 Matrices (RGB). Therfore you can't use Gray Colormap.

If 2Phone.png is a color image, Try (At least this is what I would do in Matlab):

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

This would display only the R Matrix.

Or better, use RGB2Gray (Of course, use the equivalent of Octave).

Drazick