Home > アーカイブ > ラボメンバー「hirose」の投稿一覧

ラボメンバー「hirose」の投稿一覧

投稿タイトル openCVとかRMagickで画像を加工してみた実験

お弁当を買いに行った時にすれ違ったお姉さんから凄くイイ香りがしていて、若干テンション高めのhiroseです。こんにちは。

最近、顔を識別するアプリが何かと話題になっています。
私も幾つか利用しているのですが、どれも操作も簡単でとても面白いものばかりですね。

複雑で特殊な処理を行う為には、商用のライブラリを用いる事もありますが、無料で提供されているopenCV使ってもある程度、面白い事ができます。

今回は、openCV、rubyを用いて簡単な画像処理の実験を行いたいと思います。
環境は、fedoraCore7で、openCV、ruby、objectdetect、RMagickがインストールされている環境を用います。

先ずは、顔画像の識別です。これで顔の座標を取得できます。

require ‘rubygems’
require ‘objectdetect’

model = “/usr/share/opencv/haarcascades
/haarcascade_frontalface_alt2.xml”
image = “photo.jpg”

# 取得できた領域の座標を出力する
puts ObjectDetect::detect(model, image)

haarcascade_frontalface_alt2.xml は顔画像を識別する為のパターンファイルです。
他にも上半身、下半身を識別するパターンファイルが用意されています。

顔画像領域は、これで取り出せるので、今度は画像を加工してみます。

#! /usr/bin/env ruby

require ‘rubygems’
require ‘RMagick’
require ‘objectdetect’

model = “/usr/share/opencv/haarcascades
/haarcascade_frontalface_alt2.xml”
file = “model.jpg”

faces = ObjectDetect::detect(model, file)
original = Magick::ImageList.new(file)
newImg = Magick::ImageList.new()

faces.each do |position|
x, y, width, height = position
face = original.crop(x, y, width, height)
newImg << face
end

newImg.write(’output.jpg’)

↓な感じで加工できます。

更にポラロイド風にも加工できます。

#! /usr/bin/env ruby

require ‘rubygems’
require ‘RMagick’
require ‘objectdetect’

model = “/usr/share/opencv/haarcascades
/haarcascade_frontalface_alt2.xml”
file = “model.jpg”

faces = ObjectDetect::detect(model, file)
original = Magick::ImageList.new(file)
newImg = Magick::ImageList.new()

faces.each do |position|
x, y, width, height = position
face = original.crop(x, y, width, height)
newImg << face
end

newImg.write(’output.jpg’)

clown = Magick::Image.read(”output.jpg”).first
cols, rows = clown.columns, clown.rows

clown[:caption] = “Mythos-labo”
clown = clown.polaroid { self.gravity = Magick::CenterGravity }

clown.change_geometry!(”#{cols}x#{rows}”) do |ncols, nrows, img|
img.resize!(ncols, nrows)
end

clown.write(’polaroid.png’)

チョー簡単ですね。簡単だけど、イロイロと楽しめそうです。

Home > Archives > ラボメンバー「hirose」の投稿一覧

その他

Feed配信

RSSリーダー登録

myyahooへ追加
Googleへ追加
はてなRSSへ追加
Livedoorリーダーへ追加
goo RSSリーダーへ追加

携帯サイト

携帯サイトへのQRコード
メタ情報

Page Top