画像にノイズを加える - Perl,ImageMagick

ImageMagickを使用し、画像にノイズを加えたい。AddNoiseメソッドを使用すれば簡単に実現できる。

実行例

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

befor after
オリジナル画像

サンプル

#!/usr/bin/perl

;#
;#画像にノイズを加える
;#

use Image::Magick;

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

#-- ノイズの種類 --#
my @noise = (
          'Uniform'
        , 'Gaussian'
        , 'Multiplicative'
        , 'Impulse'
        , 'Laplacian'
        , 'Poisson'

);

#-------------------------------------------#
#ノイズ画像を生成する
#-------------------------------------------#
foreach my $effect ( @noise ){
    #-- インスタンス生成 --#
    my $image = Image::Magick->new;

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

    #-- ノイズを加える --#
    $image->AddNoise( noise => $effect );

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

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

以下が実行結果です。「Uniform」は間違えたわけではなく、指定しても何も変わらないみたいです。

実行例(ノイズ一覧)

ノイズの種類 画像
Uniform
Gaussian
Multiplicative
Impulse
Laplacian
Poisson