CvMat, cv::Mat, IplImage*, CvArr 사이의 변환
OpenCV 를 사용하다보면 이미지를 저장하는 배열의 형태가 사람마다 각각 다를 경우를 겪으신 분들이 있을겁니다.
예를들어 다른 선구자들이 만들어 놓은 소스코드를 참고하고자 할때, CvMat, cv::Mat, IplImage, CvArr 등등 각각 다른 포멧을 사용하는것을 보신 분들이 있을텐데요,
저도 이러한 경우를 자주 겪어서 정리 겸, 정보 공유 겸, 오랫만에 포스팅 겸.. 해서 글을 적게 되었네요.
//OpenCV 이미지 변환
//Mat & CvMat & IplImage, CvArr convert function
IplImage to->
IplImage* -> cv::Mat
1. Mat Mat_img(IplImage_img);
2. Mat Mat_img = cvarrToMat(IplImage_img);
IplImage* -> CvMat
cvGetMat( IplImage_img, &CvMat_img);
cv::Mat to->
cv::Mat -> IplImage*
IplImage *IplImage_img = new IplImage(Mat_img);
cv::Mat -> CvMat
CvMat CvMat_img = Mat_img; // convert directly
CvMat to->
CvMat -> IplImage*
IplImage *IplImage_img = cvGetImage(CvMat_img);
CvMat -> cv::Mat
Mat Mat_img(CvMat_img);
Referenced:
http://docs.opencv.org/index.html
http://v_lovepooh_v.blog.me/20170546845