Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с изображениями, пиксели заданного цвета, фрагмены и т.д. 
:(
    Опции темы
FishHunter
Дата 20.3.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



Доброе утро, уважаемые!

Дошел я в своём изучении перла до графики. Научился простым вещам (загружать картинки, переводить в другие форматы, рисовать линии текст и т.п.), но застрял вот на чем: как в заданном изображении подсчитать допустим количество пикселей не белого цвета (или скажем общий случай - заданного цвета), как с помощью Image::Magic скопировать кусок изображения в новую пиксу (ну т.е. если ли аналог copy() GD ) (или общий случий - порезать заданное изображение на равные куски). Ткните плиз в конкретные методы, ибо с моим английским я не совсем вкурваю http://www.imagemagick.org/script/perl-magick.php эту инфу :(


PM MAIL   Вверх
amg
Дата 20.3.2009, 13:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



PM MAIL   Вверх
FishHunter
Дата 20.3.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



amg сенкс, сейчас попробую.
ЗЫ подсчитать кол-во небелых пикселей у меня получилось так:
Код

my ($i,$j,$counter,@pixels);
$counter=0;

for ($j=0;$j<$h;$j++) {
for ($i=0;$i<$w;$i++) {
 @pixels = $image->GetPixel(x=>$i,y=>$j);
           $image->SetPixel(x=>$i,y=>$j,color=>\@pixels);
 if ($pixels[0]!=1 && $pixels[1]!=1 && $pixels[2]!=1) {$counter++;}
}
}
print "$counter\n";


PS Ещё вопрос в догонку. Не подскажите как преобразовать исходное изображение в черно-белое, не в оттенки серого $image->Quantize(colorspace=>'gray'); а именно в ч.б. Вот в процессе чтения всего что мог найти в инете видел я какой-то метод, запомнил даже что он как-то хитро вычисляет какому пикселю быть белым, а какому черным. Все закладки свои перерыл. найти не могу :(

Это сообщение отредактировал(а) FishHunter - 21.3.2009, 02:21
PM MAIL   Вверх
amg
Дата 21.3.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(FishHunter @  20.3.2009,  18:37 Найти цитируемый пост)
как преобразовать исходное изображение в черно-белое
$image->Set(monochrome=>'True'); ???

PM MAIL   Вверх
FishHunter
Дата 23.3.2009, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



ага оно, а то что я искал оказалось шарпеном каким-то хитрым  smile 
PM MAIL   Вверх
FishHunter
Дата 24.3.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



Выручайте уважаемые, совсем в тупик зашел :(

вообщем мне надо, загрузить gif из него сделать jpg самого высокого качества, перевести jpg в ч.б. ну и далее манимуляции с результатом. Все это у меня получилось, за исключением того, что работает примерно 1 раз и 5-6, в остальных случаях выводит ошибку "Segmentation fault". Код:
Код

 my $img = Image::Magick->new; 
    $img->Read("ip.gif");
    $img->Write(filename=>'ip.jpg', quality=>100);

 my $image = Image::Magick->new;
    $image->Read("ip.jpg");
    $image->Contrast();
    $image->Normalize();
    $image->Set(monochrome=>'True');

 my ($w,$h)=$image->Get('base-columns','base-rows');
 print "W = $w, H = $h\n";


как сие победить?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.