お弁当を買いに行った時にすれ違ったお姉さんから凄くイイ香りがしていて、若干テンション高めのhiroseです。こんにちは。
最近、顔を識別するアプリが何かと話題になっています。
私も幾つか利用しているのですが、どれも操作も簡単でとても面白いものばかりですね。
複雑で特殊な処理を行う為には、商用のライブラリを用いる事もありますが、無料で提供されているopenCV使ってもある程度、面白い事ができます。
今回は、openCV、rubyを用いて簡単な画像処理の実験を行いたいと思います。
環境は、fedoraCore7で、openCV、ruby、objectdetect、RMagickがインストールされている環境を用います。
先ずは、顔画像の識別です。これで顔の座標を取得できます。
RUBY:
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 は顔画像を識別する為のパターンファイルです。
他にも上半身、下半身を識別するパターンファイルが用意されています。
顔画像領域は、これで取り出せるので、今度は画像を加工してみます。
RUBY:
#! /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')
↓な感じで加工できます。
 |
⇒ |
 |
更にポラロイド風にも加工できます。
RUBY:
#! /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')

チョー簡単ですね。簡単だけど、イロイロと楽しめそうです。
トラックバック+ピンバック: 0件
Home > ruby | オープンソース > openCVとかRMagickで画像を加工してみた実験
- カレンダー
-
« 2009 1 月 »
| S |
M |
T |
W |
T |
F |
S |
| |
|
|
|
1 |
2 |
3 |
| 4 |
5 |
6 |
7 |
8 |
9 |
10 |
| 11 |
12 |
13 |
14 |
15 |
16 |
17 |
| 18 |
19 |
20 |
21 |
22 |
23 |
24 |
| 25 |
26 |
27 |
28 |
29 |
30 |
31 |
- ラボ メンバー
-
 |
yoshinaga 平成の沖田総司!見た目も切れ味も抜群! |
 |
shimazaki PHPなら俺に任せろ!趣味のお菓子作りはプロ級? |
 |
oosawa 心底頼れるお兄さん!だけど酔ったら…。 |
 |
guan ええ声~~~~~~~~~!とは俺のこと! |
 |
hino ユーモア溢れるエンジニア!ただいま子育て奮闘中! |
 |
hirose 生粋のパーラーです!喫茶店じゃないよ。 |
 |
oka お洒落パーマの第一人者!Javaもやるよ? |
 |
nakajima 女性も仕事も一生懸命!ちょっとお茶でもしませんか? |
 |
tatsumi あー言えば、こー言う。可愛さ余って憎さ100倍! |
 |
mameta 長崎をこよなく愛する男!ちゃんぽん食わせたろかー! |
 |
manabe (脂肪が)燃える!あんぱんダイエッター! |
 |
mythos いらっしゃ~い!ラボメンバーたちには負けないで! |
-
- 検索
-
- リンク
-
- ページ
-
- メタ情報
-
Page Top