Steve on Image Processing

George Forsythe is inside the default MATLAB image

Posted by Steve Eddins,

A couple of weeks ago, Cleve wrote a post about George Forsythe, Cleve's "thesis advisor, colleague, and friend."

In that post, Cleve showed some MATLAB code to load in and display a 1964 picture of the organizing committee of the Gatlinburg conferences on numerical algebra.

load gatlin
image(X)
colormap(map)
axis image
axis off

As Cleve mentioned, this picture is one of the very first images distributed with MATLAB. (I recall getting the first MATLAB version capable of image display sometime around 1990. It was very exciting!)

As it turns out, there is another interesting method in MATLAB to display this picture (or at least a cropped, low-resolution version of it):

default_image = pow2(get(0,'DefaultImageCData'),47);
numbits = 12 - 9 + 1;
b = bitshift(default_image,-9);
b = fix(b);
b = bitand(b,bitcmp(0,4));
b = b/max(b(:));

imshow(b,'InitialMagnification',200)

Forsythe is on the right of the cropped version.

So, what's going on here? Well, it turns out that, if you call image with no input arguments (no data), an image with "default" pixel values gets displayed. Furthermore, that image has many images "hidden" within it. For the full story, see "The Story Behind the Default MATLAB Image."

Cleve knew that I was working on this little hidden-image project in the mid-1990s, and I asked him for suggestions about images to include. He suggested this Gatlinburg Conference picture, as well as the 4-by-4 Durer magic square.

c = bitshift(default_image,-23);
c = fix(c);
c = bitand(c,bitcmp(0,5));
c = c/max(c(:));

imshow(c,'InitialMagnification',200)

Thanks for the suggestions, Cleve!


Get the MATLAB code

Published with MATLAB® R2012b

Comments are closed.

These postings are the author's and don't necessarily represent the opinions of MathWorks.