画像を油絵に変換する - Perl,ImageMagick

ImageMagickを使用し、画像を油絵のように変換したい。OilPaintメソッドを使用すれば一発で実現できる。

実行例

※サンプル画像は有料の素材集を利用しています。転載はおやめください。

befor after
オリジナル画像 油絵風に加工した画像

サンプル

#!/usr/bin/perl

;#
;#画像を油絵に変換する
;#

use Image::Magick;

#-------------------------------------------#
#初期設定
#-------------------------------------------#
#-- 元画像 --#
my $source = './sample_org1.jpg';

#-------------------------------------------#
#画像を油絵化する
#-------------------------------------------#
for($i=0; $i<=10; $i++){
        #-- インスタンス生成 --#
        my $image = Image::Magick->new;

        #-- 画像を読込む --#
        $image->Read($source);

        #-- 油絵化  --#
        $image->OilPaint(radius=>$i);   #整数を指定

        #-- 画像を保存する(JPEG) --#
        $image->Write("./Oil/image_oil_$i.jpg");

        #-- オブジェクト破棄  --#
        undef $image;
}

radius値を変更した一覧

radiusには整数を指定するのだが、5を超えた当たりから原型をとどめなくなっている。0~3程度の範囲内で指定するのが良いだろう。また処理にちょっと時間がかかる。あまり大きな画像をリアルタイムに出力するのは難しいようだ。

radius 画像
0 radius=0の画像
1 radius=1の画像
2 radius=2の画像
3 radius=3の画像
4 radius=4の画像
5 radius=5の画像
6 radius=6の画像
7 radius=7の画像
8 radius=8の画像
9 radius=9の画像
10 radius=10の画像