LoginSignup
21

More than 5 years have passed since last update.

ruby-opencvを使って画像認識

Posted at

概要

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をインストールして顔認識した

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21