田中(邦)です。

今回はOpenCV 2.4.6を使ってiOS上で画像処理を簡単に始める方法について紹介したいと思います。

CocoaPodsのインストール

CocoaPodsとはiOSとOSX用のライブラリ管理ツールです。
オフィシャルサイトに書いてある通り、下記のコマンドだけでインストールは完了です。

$ [sudo] gem install cocoapods
$ pod setup

OpenCV 2.4.6のインストール

OpenCVは様々なプラットフォームに対応したコンピュータビジョン向けライブラリです。

顔認識や様々な画像加工などに用いることができます。

今回はiOS上で動作するものを利用します。

https://github.com/Fl0p/OpenCV-iOS

CocoaPodsを使わずにOpenCVを導入しようとすると、こちらの記事に書かれているように色々と面倒な手順を踏む必要があるのですが、CocoaPodsを使うと簡単に導入することができます。

  1. iOSプロジェクトのルートディレクトリにPodfileという名前で空のファイルを作成
  2. 作成したPodfileに pod ‘OpenCV’ と記述する
  3. 同ディレクトリで pod install を実行

% pod install
Analyzing dependencies
Downloading dependencies
Installing OpenCV (2.4.6)
Generating Pods project
Integrating client project

[!] From now on use `myNewProject.xcworkspace`.

ここまでできたらインストール完了です。

次からプロジェクトを開く時は作成されたworkspaceを開くことになります。

これでopenCVのファイルがimport可能になりました。

CocoaPods

OpenCVで画像処理

今回は試しに私が撮った写真をグレースケールに変換してみました。

london beforelondon after

ViewControllerのソースはgistに上げて置きましたので良かったら参考にしてください。(ファイルの拡張子を.mから.mmにすることに注意してください)

https://gist.github.com/kunihiko-t/6594611

(2013/09/18追記) 
OpenCV2.4.6からはUIImageとcv::Mat間の変換関数が実装されているので、そちらを使う方が楽との情報をいただきました!ありがとうございます。
ios.hで宣言されている下記の関数です。

 UIImage* MatToUIImage(const cv::Mat& image);
 void UIImageToMat(const UIImage* image,
 cv::Mat& m, bool alphaExist = false);

以上が導入の流れになります。

OpenCVについてどんなことができるかは下記リンクをご参照ください。

cv::Matの基本処理

画像処理

今回は導入編となりますが、そのうちもう少し突っ込んだ記事を書こうと思います!