[magick-users] histogram and PerlMagick
Gabe Schaffer
magick at gabe.com
Fri Nov 3 12:46:15 CST 2006
On 11/3/06, Brian Jackson <brian at actionathletics.com> wrote:
> But when the windos and mac ports happen, then I have to convert my
> shell script to whatever in the hell windos uses for shell scripts.
> Mac, not a problem, it's got bash. Another reason I want a 100% perl
> solution.
Here's some 100% perl code to do pretty much what you want:
my $temp;
$temp = $image->Clone();
$temp->Modulate("100, 0, 0") unless $bw;
my @black = Histogram($temp);
$temp = $image->Clone();
$temp->Channel("Red");
my @red = Histogram($temp);
$temp = $image->Clone();
$temp->Channel("Green");
my @green = Histogram($temp);
$temp = $image->Clone();
$temp->Channel("Blue");
my @blue = Histogram($temp, $blackpoint, $whitepoint);
sub Histogram
{
my ($image) = @_;
my $filename = "histogram" . rand;
$image->Write("histogram:$filename");
undef $image->[0];
my $hg = new Image::Magick;
$hg->Read($filename);
unlink $filename;
return $hg
}
> Maybe I just need to learn some graphics programming and understand that
> HUGE array that is returned from the Histogram() method :-D
Is the Historgram() method much faster than what you have now?
> > To use less time, you may want to use a Q8 build because it will only
> > have half the data to process. Also, you should try computing a
> > single color histogram and using the individual channels from it to
> > make the different color histograms.
>
> And actually, computing the histogram first and then trying to extract
> the channels from that...doesn't seem to work for me. I get 3 black
> files :(
What do you mean by black? Do you mean every pixel is black? Or just
that there are no colored pixels?
> > A third trick would be to resize the image, then compute the
> > historgrams from that. This is a notable idea because that's how
> > Photoshop (and presumably The GIMP) can do it so much faster than
> > ImageMagick.
>
> This is from a reduced image size. That's how my program can process
> 100's of photos in a few minutes.
Do you resize or resample? The method you use will make a difference.
GNS
More information about the Magick-users
mailing list