OpenCV 画像を読み込み2値化して表示する.


これは OpenCV 超初心者である私のメモです.

間違っている可能性がありますので注意してください.

OpenCV を使用して, 画像を読み込み, 2値化して表示するサンプルコードを以下に示す.

ソースコード

/* header files */
#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>

/* main */
int main(void) {
    IplImage* source;
    IplImage* binary;

    int threshold = 128;
    int max_value = 255;

    /* 静止画像をグレースケールとして読み込む */
    source = cvLoadImage("dede.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    if (source == NULL) {
        fprintf(stderr, "読込みに失敗しました.");
        return EXIT_FAILURE;
    }

    /* 2値画像用の領域を確保 */
    binary = cvCreateImage(cvGetSize(source), IPL_DEPTH_8U,1); 

    /* グレースケールから2値画像に変換 */
    cvThreshold(source,binary,threshold,max_value,CV_THRESH_BINARY);

    /* ウインドウを準備して画像を表示する */
    cvNamedWindow("Binarization",CV_WINDOW_AUTOSIZE);
    cvShowImage("Binarization",binary);

    /* キー入力があるまで待つ */
    cvWaitKey(0); /* これがないと、1瞬だけ表示されて終わる */

    /* メモリを開放する */
    cvReleaseImage(&source);
    cvReleaseImage(&binary);

    /* ウィンドウを破棄する */
    cvDestroyWindow("Binarization");

    return EXIT_SUCCESS;
}

実行結果

実行結果は以下のようになる.