Imagerで画像を2値化する
Imager::Enginesていうのが強力過ぎて、
なんか良く分からないんだけど、2値化とかするのに便利っぽい。
何が良く分からないかというと、
Postfix expressionsを使わなくちゃいけなくて、
たぶん、逆ポーランド記法のことだと思う。
で、こんな感じコードを書く。
use v5.14; use strict; use warnings; use Imager; my $src = Imager->new( file => $ARGV[0] ) or die Imager->errstr(); my $newimg = Imager::transform2( { channels => 1, rpnexpr => 'x y getp1 !pix @pix hue 180 gt @pix hue 52 lt or @pix sat 0.1 lt or 255 255 255 rgb 0 0 0 rgb ifp' }, $src ); $newimg->write( file => "dst.png" );
すると、こんな感じで2値化されて便利。
やっていることは、赤っぽい色 or 彩度の低いピクセルを抽出している。
あと、トマトを食べる時は、MacBook Airの前で食べない方が良い。
じゃないと、キーボードにトマトの中身が降り掛かることになる。
おしまい。
Leave a Comment