1. 程式人生 > >opencv3.1 把mat轉IplImage

opencv3.1 把mat轉IplImage

vs2015和cv3.1,findContours()找出輪廓這個函式沒反應,直接退出。這個函式是mat做輸入的。
我覺得之前的灰度化,二值化沒有問題。該是單通道的是單通道。
斷點後,重新配置環境,還是有點搞不懂。
換成cvFindContours(),這個用IplImage做輸入的。可以跑出結果。

mat轉iplImage

opencv3.1取消了mat直接轉iplImage部分函式,但是下面程式碼還是可以的

IplImage* src; 
src = cvCreateImage(cvSize(mat.cols, mat.rows), 8, 1); //輸入Mat格式
IplImage ipltemp = mat; 
cvCopy(&ipltemp, src);//完全的imlImage進行復制
if (!src) { printf("read data error!\n"); return -1; } //ipltemp 就是要用的IplImage

IplImage轉mat

這行程式碼可做到

cv::Mat temp = cv::cvarrToMat(dst);//iplImage轉mat

對opencv還是有蠻多不懂的,比方mat為啥取消轉IplImage的函式呀,
為啥有cvFindContours()沒直接退出,findContours直接退出了。