RMagickで乗算合成をしてみた。
引き続き画像処理。ピクセル楽しい。
今回は乗算合成をやってみた。
乗算合成では、合成後の色を次の式で算出する。
元画像の色 * 合成画像の色 / 256 = 合成後の色
require 'rubygems' require "RMagick" include Magick def multipleconb(image1, image2) img1 = ImageList.new(image1) img2 = ImageList.new(image2) for y in 0...img1.rows-1 for x in 0...img1.columns-1 src1 = img1.pixel_color(x, y) src2 = img2.pixel_color(x, y) # 二つの画像からRGB値ごとに合成色を算出 m_red = src1.red * src2.red / 256 m_green = src1.green * src2.green / 256 m_blue = src1.blue * src2.blue / 256 color = Magick::Pixel.new(m_red, m_green, m_blue) img1.pixel_color(x, y, color) end end img1.write "test.jpg" end image1 = ARGV[0] image2 = ARGV[1] multipleconb(image1, image2)
今回の実験画像はこちら。
ハイレグサイエンティスト、ナオミ博士と
ゴスロリ殺人四番バッター、バッドガールさんです。
ruby ./multipleconb.rb image/naomi.jpg image/badgirl.jpg
結果。処理的には正常だけど画像的にはよくわからないものになった。
おまけ。
同じ画像にしきい値と色の違う二値化処理を施して乗算合成すると影がついたような効果がでてカッコイイ!