help-octave
[Top][All Lists]
Advanced

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

Re: pngread does not read 12bit gray images


From: Søren Hauberg
Subject: Re: pngread does not read 12bit gray images
Date: Fri, 11 Jul 2008 13:32:16 +0200

fre, 11 07 2008 kl. 07:04 -0400, skrev Bill Denney:
> > So, this is somehow related to the fact that the image is 12 bit but is
> > read as 16 bit. Should the minimum value be 774 (as ImageMagick reports)
> > or should it be 12384 (as Octave reports) ? I mean, who's right?
> I'd say that ImageMagick is right, but that we shouldn't change our 
> output unless we implement a 12 bit numeric class (with the new classes 
> that could be done relatively easily, but I don't think it's worth the 
> effort for this).  The reason is that we should be able to replicate the 
> image through its normalized intensity in the current bit depth.  If we 
> set it to 774, but it's stored in an uint16, then unless you 
> specifically knew the image was 12 bit, it seems likely that you would 
> represent the image as lower contrast than it really is (most code will 
> make the assumption that the intensity is 774/(2^16 -  1)).  Keeping the 
> 12384 allows round-trips to be made correctly while I don't think that's 
> the case for 774.

I just think of images as matrices, so to me the actual numerical values
in each pixel should not be altered when the image is read. The way I
understand the issue, is that the image contains a pixel with the value
774, that Octave reads as 12384, which can't be right. So, it sounds
like a bug in __magick_read__ to me... Am I understanding things
correctly?
I think that 12 bit images should be represented as 16 bit images that
happens to have a maximum value of 2^12 - 1.

Søren



reply via email to

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