C++: Mat cvarrToMat(const CvArr* arr, bool copyData=false, bool allowND=true, int coiMode=0 )
Parameters:
cvSetIdentity(A); IplImage A1; cvGetImage(A, &A1); Mat B = cvarrToMat(A); Mat B1 = cvarrToMat(&A1); IplImage C = B; CvMat C1 = B1; // now A, A1, B, B1, C and C1 are different headers // for the same 10x10 floating-point array. // note that you will need to use "&" // to pass C & C1 to OpenCV functions, for example: printf("%g\n", cvNorm(&C1, 0, CV_L2)); 1、示例(IplImage -> Mat) IplImage* transIplImage; #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main() { IplImage*image=cvLoadImage("lenab.jpg"); cvNamedWindow("原图1"); cvShowImage("原图1",image); Mat srcImage(image); namedWindow("原图2"); imshow("原图2",srcImage); waitKey(); cvReleaseImage(&image); cvDestroyWindow("原图1"); return 0; } #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main() { IplImage*image=cvLoadImage("E:\\图片\\lena.jpg"); cvNamedWindow("原图1"); cvShowImage("原图1",image); Mat srcImage=cvarrToMat(image);//IplImage转化为Mat namedWindow("原图2"); imshow("原图2",srcImage); waitKey(); cvReleaseImage(&image); cvDestroyWindow("原图1"); return 0; } |