さんじゃらっと ruby + OpenCV で顔認識してトリミングするお
こんにちは
前回のさんじゃらっと OSX + ruby でOpenCVの続きです。
ruby-opencvを使って画像から顔を認識して顔の部分だけを切り取ります。
スクリプトはこちらです。
face_detection.rb
require 'opencv'
include OpenCV
if ARGV.length < 1
puts "Usage: ruby #{__FILE__} source dest"
exit
end
data = './haarcascade_frontalface_alt.xml'
detector = CvHaarClassifierCascade::load(data)
image = IplImage.load(ARGV[0])
detector.detect_objects(image).each do |region|
color = CvColor::Blue
image.rectangle! region.top_left, region.bottom_right, :color => color #ここで顔に枠をつけるよ
image.set_roi(region) #ここでさらに顔の部分だけを切り取り
end
#image.save_image(ARGV[1])
window = GUI::Window.new('Face detection')
window.show(image)
GUI::wait_key
ただ、これを実行すると現時点では
error: (-2) The node does not represent a user object (unknown type?) in function cvRead (OpenCV::CvStsError)
こんなエラーが出ました。
cascade用のhaar-like-fatureのxmlの型が古いようです。
そこで最新のxmlをどこかからwgetとかしてきて使いました
例えばこんなん
wget https://raw.githubusercontent.com/bwkeller/warai/master/haarcascade_frontalface_alt.xml
ほんで、
ruby face_detection face.jpg
とかやると
が
こうなりました!
Stay Gold!
Author And Source
この問題について(さんじゃらっと ruby + OpenCV で顔認識してトリミングするお), 我々は、より多くの情報をここで見つけました https://qiita.com/araya/items/b599318236cd6feee7c0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .