[opencv] for C

spring·2020년 11월 9일
0

OpenCV는 3.0 이후 버전부터 C API를 버렸다.
더 이상 C를 위한 API를 지원하지 않는다.
IplImage 같은 자료형이 없어지는것이 아니라, gcc 같은 컴파일러로 컴파일을 할 수 없다.
g++ 같은 C++ 컴파일러를 통해서만 빌드가 가능하다.

컴파일러 에러로 cvRound 어쩌구 하는 순간 이 문제라고 보면 된다.

만일 gcc로 빌드할 생각이라면 OpenCV 2.x 버전을 사용해야 한다.

현재 최신 버전은 2.4.13.5 이다.

직접 받아서 빌드해줘야 한다. world build는 지원하지 않는다.

https://github.com/springkim/WSpring 에서 C를 위한 OpenCV cmake build script를 찾아 볼 수 있다.

MSVC 라면 그냥 공식 홈페이지에서 다운 받으면 된다.

#include<stdio.h>
#include<opencv/cv.h>
#include<opencv/highgui.h>
int main() {
	IplImage* img=cvCreateImage(cvSize(600,600),IPL_DEPTH_8U,1);
	for(int y=0;y<img->height;y++){
		for(int x=0;x<img->width;x++){
			int idx=y+x*img->widthStep;
			img->imageData[idx]=0;
		}
	}
	cvNamedWindow("img",CV_WINDOW_AUTOSIZE);
	cvShowImage("img",img);
	cvSaveImage("img.png",img,NULL);
	cvWaitKey(0);
	cvDestroyAllWindows();
	return 0;
}
profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글