CvMat、IplImage轉換爲Mat
opencv3.0中 Mat(CvMat *M,bool copydata=false)這個構造函數已經不再使用,而有函數:
Mat cvarrToMat(const CvArr *arr,
bool copyData=false,
int coiMode=0,
)
Cvarr可以是CvMat或IplImage類型。
Mat轉換爲IplImage類型
看到網上有這種寫法:
IplImage *iplimage;
*iplimage =m_Mat;
這時編譯會出錯,因爲指針iplimage沒有初始化,如果初始化爲NULL,運行時會出錯,可能是我c++學的不好,可能這裏可以通過new來分配內存。
這時可以用下面的方法:
IplImage iplimage =IplImage(m_Mat);
Mat轉換爲CvMat
在CvMat類中的一個構造函數:
CvMat::CvMat ( const cv::Mat & m )
其實Mat轉換爲IplImage也是使用的構造函數。
我只是在做作業時使用到了opencv,沒有深入研究,具體的可以參看這兩篇文章:
CvArr、Mat、CvMat、IplImage、BYTE轉換(總結而來)
OpenCv中cv::Mat和IplImage,CvMat之間的轉換