openFrameworks で OpenCV を使う方法を見てみます。

プロジェクト名は openCv とします。

opencv.png


ofxOpenCv アドオンを使用する

はじめに、addons.make ファイルに、以下の1行を記述します。

ofxOpenCv

次に、ofApp.h に、必要なヘッダファイルを追加します。

...略...
#include "ofxOpenCv.h"

class ofApp : public ofBaseApp {
    ...略...
};

画像の取り込み

カメラからの画像を取り込む方法を見てみます。

カメラを扱うオブジェクト ofVideoGrabber と、OpenCV で画像を扱うためのオブジェクト ofxCvColorImage を使用します。

この2つを ofApp.h ヘッダファイルで作成します。

...略...
#include "ofxOpenCv.h"

class ofApp : public ofBaseApp {
    ...略...
    
    ofVideoGrabber vidGrabber;

    ofxCvColorImage colorImg;
};

この2つのオブジェクトの初期化、更新、描画処理を記述します。

void ofApp::setup() {
    vidGrabber.setVerbose(true);        // 開発中のログ出力を有効にする。
    vidGrabber.initGrabber(320, 240);

    colorImg.allocate(320, 240);
}

void ofApp::update() {
    bool bNewFrame = false;

    vidGrabber.update();
    bNewFrame = vidGrabber.isFrameNew();

    if(bNewFrame) {
        colorImg.setFromPixels(vidGrabber.getPixels());
        colorImg.resize(320, 240);
    }
}

void ofApp::draw() {
    ofSetColor(255, 255, 255);

    vidGrabber.draw(20, 20, 320, 240);

    colorImg.draw(360, 20);
}

グレースケールに変換する

次への準備として、カラー画像をグレースケールに変換します。