是否有方法使用perl對給定圖像中特定區域中的顏色(知道什麼是顏色或顏色範圍)進行採樣? 比方說,我有一個200X200的圖像,我想在區域X中對顏色(或顏色)進行採樣:15; Y:30 ;.有沒有辦法做到這一點?或者是否有任何現有的模塊可以實現這一點(特別是考慮到圖像中有許多區域需要採樣並且有很多圖像)。使用Perl對圖像中的顏色進行採樣
謝謝!
弗雷德
是否有方法使用perl對給定圖像中特定區域中的顏色(知道什麼是顏色或顏色範圍)進行採樣? 比方說,我有一個200X200的圖像,我想在區域X中對顏色(或顏色)進行採樣:15; Y:30 ;.有沒有辦法做到這一點?或者是否有任何現有的模塊可以實現這一點(特別是考慮到圖像中有許多區域需要採樣並且有很多圖像)。使用Perl對圖像中的顏色進行採樣
謝謝!
弗雷德
首先,讓我先說我不懂彩色空間。但是,GD可以很容易地從位圖中抓取一堆像素。
#!/usr/bin/env perl
use strict;
use warnings;
use GD;
my $img = GD::Image->new('Palisades-woods.jpg');
my ($width, $height) = $img->getBounds;
my $sample_left = $width/2 - 10;
my $sample_top = $height/2 - 10;
my $sample_width = my $sample_height = 20;
my $n = 0;
my $avg = 0;
for my $y (0 .. $sample_height - 1) {
for my $x (0 .. $sample_width - 1) {
my ($r, $g, $b) = $img->rgb($img->getPixel($x, $y));
my $rgb = ($r << 16) + ($g << 8) + $b;
$avg = ($n * $avg + $rgb)/($n + 1);
$n += 1;
}
}
printf "Average rgb is #%06X\n", $avg;
我還沒有機會還測試了這一點,但它看起來像它的東西,你可以要求處理圖像和Perl。 http://www.graphicsmagick.org/perl.html
可能的解決方案:http://stackoverflow.com/questions/3681415/perl-imagemagick-getting-color-values-by-pixel – Mark