久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

轉(zhuǎn): CvMat,,Mat和IplImage之間的轉(zhuǎn)化和拷貝

 昵稱17328427 2015-12-07

1,、CvMat之間的復(fù)制

//注意:深拷貝 - 單獨分配空間,兩者相互獨立  
CvMat* a;  
CvMat* b = cvCloneMat(a);   //copy a to b  

2,、Mat之間的復(fù)制

復(fù)制代碼
//注意:淺拷貝 -  不復(fù)制數(shù)據(jù)只創(chuàng)建矩陣頭,,數(shù)據(jù)共享(更改a,b,c的任意一個都會對另外2個產(chǎn)生同樣的作用)
Mat a;
Mat b = a; //a "copy" to b
Mat c(a); //a "copy" to c

//注意:深拷貝
Mat a;
Mat b = a.clone(); //a copy to b
Mat c;
a.copyTo(c); //a copy to c
復(fù)制代碼

3、CvMat轉(zhuǎn)Mat

復(fù)制代碼
//使用Mat的構(gòu)造函數(shù):Mat::Mat(const CvMat* m, bool copyData=false);    默認(rèn)情況下copyData為false
CvMat* a;
//注意:以下三種效果一致,,均為淺拷貝
Mat b(a);    //a "copy" to b
Mat b(a, false);    //a "copy" to b
Mat b = a;    //a "copy" to b

//注意:當(dāng)將參數(shù)copyData設(shè)為true后,,則為深拷貝(復(fù)制整個圖像數(shù)據(jù))
Mat b = Mat(a, true); //a copy to b
復(fù)制代碼

4、Mat轉(zhuǎn)CvMat

復(fù)制代碼
//注意:淺拷貝
Mat a;
CvMat b = a; //a "copy" to b

//注意:深拷貝
Mat a;
CvMat *b;
CvMat temp = a; //轉(zhuǎn)化為CvMat類型,,而不是復(fù)制數(shù)據(jù)
cvCopy(&temp, b); //真正復(fù)制數(shù)據(jù) cvCopy使用前要先開辟內(nèi)存空間
復(fù)制代碼

==========IplImage與上述二者間的轉(zhuǎn)化和拷貝===========

1,、IplImage之間的復(fù)制
這個不贅述了,就是cvCopy與cvCloneImage使用區(qū)別,,貼張網(wǎng)上的圖:

2,、IplImage轉(zhuǎn)Mat

復(fù)制代碼
//使用Mat的構(gòu)造函數(shù):Mat::Mat(const IplImage* img, bool copyData=false);    默認(rèn)情況下copyData為false
IplImage* srcImg = cvLoadImage("Lena.jpg");
//注意:以下三種效果一致,,均為淺拷貝
Mat M(srcImg);
Mat M(srcImg, false);
Mat M = srcImg;

//注意:當(dāng)將參數(shù)copyData設(shè)為true后,則為深拷貝(復(fù)制整個圖像數(shù)據(jù))
Mat M(srcImg, true);
復(fù)制代碼

3,、Mat轉(zhuǎn)IplImage

復(fù)制代碼
//注意:淺拷貝 - 同樣只是創(chuàng)建圖像頭,,而沒有復(fù)制數(shù)據(jù)
Mat M;
IplImage img = M;
IplImage img = IplImage(M);
//深拷貝
cv::Mat img2;
IplImage imgTmp = img2;
IplImage *input = cvCloneImage(&imgTmp);
復(fù)制代碼

4、IplImage轉(zhuǎn)CvMat

復(fù)制代碼
//法一:cvGetMat函數(shù)
IplImage* img;
CvMat temp;
CvMat* mat = cvGetMat(img, &temp);    //深拷貝
//法二:cvConvert函數(shù)
CvMat *mat = cvCreateMat(img->height, img->width, CV_64FC3);    //注意height和width的順序
cvConvert(img, mat);    //深拷貝
復(fù)制代碼

5,、CvMat轉(zhuǎn)IplImage

復(fù)制代碼
//法一:cvGetImage函數(shù)
CvMat M;
IplImage* img = cvCreateImageHeader(M.size(), M.depth(), M.channels());
cvGetImage(&M, img);    //深拷貝:函數(shù)返回img
//也可寫成
CvMat M;
IplImage* img = cvGetImage(&M, cvCreateImageHeader(M.size(), M.depth(), M.channels()));
//法二:cvConvert函數(shù)
CvMat M;
IplImage* img = cvCreateImage(M.size(), M.depth(), M.channels());
cvConvert(&M, img);    //深拷貝
復(fù)制代碼

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多