2011-11-14 2 views
1

Есть ли способ прорисовки цвета (знаете, какой цвет или диапазон цветов) в определенной области в данном изображении с использованием perl? Предположим, у меня есть изображение 200X200, и я хочу пробовать цвет (или цвета) в области X: 15; Y: 30 ;. Есть ли способ сделать это? Или есть ли какой-либо существующий модуль, который мог бы сделать это легко реализуемым (особенно учитывая, что в изображении есть много областей, которые могут быть отображены внутри и что существует много изображений).Цвет выборки в изображении с помощью Perl

Спасибо!

Фред

+1

Возможное решение: http://stackoverflow.com/questions/3681415/perl-imagemagick-getting-color-values-by-pixel – Mark

ответ

2

Прежде всего, позвольте мне изложить, что я не понимаю цветовых пространств. Тем не менее, 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; 
0

Я не имел возможности проверить это, но пока это выглядит как его все, что вы могли бы попросить для работы с изображениями и Perl. http://www.graphicsmagick.org/perl.html

Смежные вопросы