第1回 OpenCV教室

画像の読み込みと表示

以下のプログラムを実際に動かしてみよう。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(lib,"opencv_core244d.lib")
    #pragma comment(lib,"opencv_highgui244d.lib")
#else
    //Releaseモードの場合
    #pragma comment(lib,"opencv_core244.lib")
    #pragma comment(lib,"opencv_highgui244.lib")
#endif

using namespace std;

int main() {

	cv::Mat img = cv::imread("sample1.jpg");
	if (img.empty() == true) {
		cerr << "ファイルが読み込めません." << endl;
		cv::waitKey(0);
		return -1;
	}

	cv::namedWindow("画像表示");
	cv::imshow("画像表示", img);

	cv::waitKey(0);

	return 1;
}

処理対象ファイルは以下の「sample1.jpg」とする。

結果は以下のようになる。

C言語版

上記をC言語で書くと以下のようになる。

#include <opencv2/core/core_c.h>
#include <opencv2/highgui/highgui_c.h>

#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(lib,"opencv_core244d.lib")
    #pragma comment(lib,"opencv_highgui244d.lib")
#else
    //Releaseモードの場合
    #pragma comment(lib,"opencv_core244.lib")
    #pragma comment(lib,"opencv_highgui244.lib")
#endif

int main() {
	IplImage* img = cvLoadImage("sample1.jpg", CV_LOAD_IMAGE_UNCHANGED);
	cvNamedWindow("画像表示", CV_WINDOW_AUTOSIZE);
	cvShowImage("画像表示", img);
	cvWaitKey(0);

	cvReleaseImage(&img);
	cvDestroyWindow("画像表示");

	return 0;
}