Thursday, February 19, 2009

RMagickで画像を2値化で切り取って、白背景でぼかす

RMagickで画像を2値化で切り取って、白背景でぼかすには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像を2値化して切り取って白背景と合成してからぼかす
images1 = ImageList.new("sample5r.jpg")
images1[0] = images1.threshold(MaxRGB*0.85).negate(true)
images1.alpha = ActivateAlphaChannel
images1[0] = images1.fx("p.r==1?1:0", AlphaChannel)
images2 = ImageList.new("sample5r.jpg")
img = images1.composite(images2, 0, 0, SrcInCompositeOp);
img2 = Image.new(img.columns, img.rows){
self.background_color = "white"
}
img3 = img2.composite(img, CenterGravity, 0, 0, OverCompositeOp);
img4 = img3.blur_channel(0, 2, ChannelType::AllChannels)

img4.write("sample778a.png")

exit
元画像(sample5r.jpg)


出力画像(sample778a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで、2値化して画像を切り取って白背景でぼかす (convertコマンドでの同様の処理)

No comments: