概要
opencvってなんぞや
Open Source Computer Vision Libraryの略
インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリ
公式のサポート言語:C、C++、Python、Java
*コンピュータービジョン:画像・映像を分析する分野
opencvで解析できること
・行列演算
・フィルター処理・オブジェクト検出
・特徴点抽出
・オブジェクトトラッキング
・カメラキャリブレーション
・機械学習
・パノラマ合成
・GUI(ウィンドウ表示、画像ファイル、動画ファイルの入出力、カメラキャプチャ)
試しに顔認識をしてみました。
下準備
brew search opencv
brew tap homebrew/science
brew info opencv
brew install opencv
gem install ruby-opencv
コード
face_tracking.rb
require 'opencv'
window = OpenCV::GUI::Window.new "face detect"
capture = OpenCV::CvCapture.open
detector = OpenCV::CvHaarClassifierCascade::load "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml"
loop do
image = capture.query
image = image.resize OpenCV::CvSize.new 640, 360
detector.detect_objects(image).each do |rect|
puts "detect!! : #{rect.top_left}, #{rect.top_right}, #{rect.bottom_left}, #{rect.bottom_right}"
image.rectangle! rect.top_left, rect.bottom_right, :color => OpenCV::CvColor::Red
end
window.show image
break if OpenCV::GUI::wait_key(100)
end
参考資料
・OpenCVとは? その機能概要/構成技術/主要モジュール
・ruby-opencvをインストールして顔認識した