OpenCV 画像を読み込みネガポジ反転して表示する.


これは OpenCV 超初心者である私のメモです.
間違っている可能性がありますので注意してください.

cvNot 関数を使用すると画像配列の各要素のビットをすべて反転することができる. これを利用すると画像のネガポシ反転を行うことができる.

OpenCV を使用して, 画像を読み込み, ネガポシ反転して表示するサンプルコードを以下に示す.

ソースコード

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

/* main */
int main(void) {
    IplImage *image;

    /* 静止画像を読み込む */
    image = cvLoadImage("dede.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
    if(image == NULL){
        fprintf(stderr, "読み込み失敗");
        return EXIT_FAILURE;
    }

    /* 配列の各要素のビットをすべて反転する */
    cvNot(image, image);

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

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

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

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

    return EXIT_SUCCESS;
}

実行結果

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