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;
}