miyagawanize.pl 試した

YAPC::Asia2009で大うけだった miyagawanize にインスパイアされて、4U - beauty image bookmarking のフィードの画像を取ってきて、根こそぎ美少女を miyagawanize して IRCtwitter にポストするというネタを非同期な感じでやろうとしたけど、なかなか難しかった。


まず普通にスクリプトを動かそうとする。

OpenCV と Imager はけっこうすぐ入ったけど、Image::ObjectDetect がすんなり行ってくれなかった。

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found cannot find opencv library. at Makefile.PL line 8.
Warning: No success on command[/usr/bin/perl Makefile.PL]
JIRO/Image-ObjectDetect-0.11.tar.gz
/usr/bin/perl Makefile.PL -- NOT OK


opencv.pc のあるディレクトリをPKG_CONFIG_PATH環境変数に追加しなきゃいけないっぽ。
というわけで、そうする。

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig


んで、miyagawanize.pl をそのまま試すんだけど、動かない。


jpeg 画像に purple thing を当てようとしていたのだけど、実はうちのサーバでは jpeg 画像がサポートできない状態だった。
(エラーが出ていたところ(can not call rubthrough method)と実際の原因(read method)が違っていたが、まあ、それはよくあること)


んで、以下のようにライブラリを追加して、Imager を入れなおした。

# apt-get install libjpeg libjpeg-devel libjpeg6a
# cpan -fi Imager

これで、無事動いた。


Perl で他言語のライブラリを使ってる系のモジュールとか、こういうとこ結構難しいですよね。


まあそんでいろいろ遊んでいたら、OpenCVの学習が大変そうなのでこのネタは終了。
AnyEvent::Intro やってたら時間が来たのでおわり。