octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: imread (repost)


From: Thomas L. Scofield
Subject: Re: imread (repost)
Date: Tue, 5 Aug 2008 22:46:39 -0400


In Octave:

octave:4> im = imread("magnolia.png");
octave:5> whos im
Variables in the current scope:

  Attr Name        Size                     Bytes  Class
  ==== ====        ====                     =====  ===== 
       im        480x640x4                1228800  uint8

Total is 1228800 elements using 1228800 bytes

octave:6> max(max(im(:,:,4)))
ans = 247
octave:7> min(min(im(:,:,4)))


octave:8> [im,map,alpha] = imread("magnolia.png");
octave:9> whos im map alpha
Variables in the current scope:

  Attr Name        Size                     Bytes  Class
  ==== ====        ====                     =====  ===== 
       im        480x640x4                1228800  uint8
       map         0x0                          0  double
       alpha       0x0                          0  double

Total is 1228800 elements using 1228800 bytes


In Matlab:

>> im = imread('magnolia.png');
>> whos im
  Name        Size              Bytes  Class    Attributes

  im        480x640            307200  uint8              


>> [im, map, alpha] = imread('magnolia.png');
>> whos im map alpha
  Name         Size              Bytes  Class     Attributes

  alpha        0x0                   0  double              
  im         480x640            307200  uint8               
  map        250x3                6000  double    


For this same image, here is the output of the GraphicsMagick shell command  "gm identify -verbose magnolia.png":

Image: /Users/scofield/images/generic/magnolia.png
  Format: PNG (Portable Network Graphics)
  Geometry: 640x480
  Class: DirectClass
  Type: true color with transparency
  Depth: 8 bits-per-pixel component
  Channel Depths:
    Red:      8 bits
    Green:    8 bits
    Blue:     8 bits
    Opacity:  8 bits



On Aug 5, 2008, at 10:34 PM, John W. Eaton wrote:

On  5-Aug-2008, Thomas L. Scofield wrote:

| 
| On Aug 5, 2008, at 4:53 PM, Søren Hauberg wrote:
| 
| > tir, 05 08 2008 kl. 22:50 +0200, skrev Søren Hauberg:
| >> tir, 05 08 2008 kl. 10:35 -0400, skrev Thomas L. Scofield:
| >>> That's not the kind of modification I was suggesting for imshow.  I
| >>> was suggesting this much simpler change (pseudocode):
| >>>
| >>>
| >>>   if (length (size (image)) == 3 && size (image, 3) == 4)
| >>>     show image(:, :, 1:3)
| >>>   else
| >>>     show image
| >>>   endif
| >>
| >> I can only see the point of this behaviour if 'imread' actually  
| >> returns
| >> NxMx3 arrays.
| >
| > Aaarghh, I of course ment to write MxNx4 here...
| >
| 
| 
| That brings us back around to my original post.  I have examples of  
| png files for which
| 
|    im = imread ("file.png");
|    size (im, 3)
| 
| produces the output 4.

Can you find out what Matlab's imread returns for this file?  I'm also
curious about what happens if you call imread like this:

  [im, map, alpha] = imread ('file.png')

Thanks,

jwe

Thomas L. Scofield
--------------------------------------------------------
Associate Professor
Department of Mathematics and Statistics
Calvin College
--------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]