CvMat,Mat和IplImage之間的轉化和拷貝

1、CvMat之間的復制

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

2、Mat之間的復制

復制代碼
//注意:淺拷貝 -  不復制數據只創建矩陣頭,數據共享(更改a,b,c的任意一個都會對另外2個產生同樣的作用)
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
復制代碼

3、CvMat轉Mat

復制代碼
//使用Mat的構造函數:Mat::Mat(const CvMat* m, bool copyData=false);    默認情況下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//注意:當將參數copyData設為true后,則為深拷貝(復制整個圖像數據)
Mat b = Mat(a, true); //a copy to b
復制代碼

4、Mat轉CvMat

復制代碼
//注意:淺拷貝
Mat a;
CvMat b = a; //a "copy" to b//注意:深拷貝
Mat a;
CvMat *b;
CvMat temp = a; //轉化為CvMat類型,而不是復制數據
cvCopy(&temp, b); //真正復制數據 cvCopy使用前要先開辟內存空間
復制代碼

==========IplImage與上述二者間的轉化和拷貝===========

1、IplImage之間的復制
這個不贅述了,就是cvCopy與cvCloneImage使用區別,貼張網上的圖:

2、IplImage轉Mat

復制代碼
//使用Mat的構造函數:Mat::Mat(const IplImage* img, bool copyData=false);    默認情況下copyData為false
IplImage* srcImg = cvLoadImage("Lena.jpg");
//注意:以下三種效果一致,均為淺拷貝
Mat M(srcImg);
Mat M(srcImg, false);
Mat M = srcImg;//注意:當將參數copyData設為true后,則為深拷貝(復制整個圖像數據)
Mat M(srcImg, true);
復制代碼

3、Mat轉IplImage

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

4、IplImage轉CvMat

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

5、CvMat轉IplImage

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HALCON示例程序particle.hdev測量小圓部分

HALCON示例程序particle.hdev測量小圓部分 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () dev_close_window () dev_open_window (0, 0, 512, 512, ‘black’, WindowID) set_display_font (WindowID, 14, ‘mono’, ‘true’, ‘false’…

Java List 分頁

//分頁&#xff0c;根據country或者site分br/>Overridepublic List<Integer> getSitesPage(Integer parentLevel, Integer currentPage) {List<Integer> subFrames getSites(parentLevel) ;int currentNum ( currentPage - 1 ) * CardViewUtil.PREPAGE_NUM ;D…

跟多導出數據庫的方法

鏈接&#xff1a;http://www.2cto.com/database/201207/139330.html轉載于:https://www.cnblogs.com/nycj/p/5661151.html

rtp協議詳解/rtcp協議詳解

、簡介 目前&#xff0c;在IP網絡中實現實時語音、視頻通信和應用已經成為網絡應用的一個主流技術和發展方向&#xff0c;本文詳細介紹IP協議族中用于實時語音、視頻數據傳輸的標準協議RTP&#xff08; Real-time Transport Protocol&#xff09;和RTCP&#xff08;RTP Control…

MVC開發中的常見錯誤-04-“System.NullReferenceException”類型的異常在 BBFJ.OA.WebApp.dll 中發生,但未在用戶代碼中進行處理...

未將對象引用設置到對象實例,又名空指針異常,伴隨程序員開發的一生. 查看詳細信息得知: SetUserRoleInfo() 首先想到的是 IBLL.IRoleInfoService RoleInfoService { set; get; }應該是config文件中反射出現了問題 <?xml version"1.0" encoding"utf-8"…

HALCON示例程序pcb_inspection.hdev檢測pcb印刷缺陷

HALCON示例程序pcb_inspection.hdev檢測pcb印刷缺陷 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 read_image (Image, ‘pcb’) dev_close_window () get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowHa…

profibus GSD文件詳解

profibus GSD文件詳解 2015-6-19 通過PROFIBUS DP用功能塊在主、從站之間實現雙向數據傳送&#xff1a;在主站PLC可以通過調用SFC14“DPRD_DAT”和SFC15“DPWR_DAT”來完成和從站的數據交換&#xff0c;而對于從站來說可以調用FC1“DP_SEND”和FC2“DP_RECV”完成數據的交換。 …

繼承與派生

# 1、什么是繼承&#xff1f;# 繼承一種新建類的的方式&#xff0c;在python中支持一個兒子繼承多個爹# 新建的類稱為子類或者派生類&#xff0c;# 父類又可以稱為基類或者超類## 子類會”遺傳“父類的屬性## 2、為什么要用繼承# 減少代碼冗余## 3、怎么用…

opencv問題解析

錯誤 1 error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞 C:\Users\Administ 解決方法如下&#xff1a;項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單&#xff1a;原來是“是”&#xff0c;改成“否”。 LINK : fatal error LNK1104: 無法打開文件“opencv_calib3d249…

RTSP協議介紹

1. 實 時流協議RTSP RTSP[3]協 議以客戶服務器方式工作&#xff0c;它是一個多媒體播放控制協議&#xff0c;用來使用戶在播放從因特網下載的實時數據時能夠進行控制&#xff0c;如&#xff1a;暫停/繼 續、后退、前進等。因此 RTSP 又稱為“因特網錄像機遙控協議”。 1.1. …

mysql中出現沒有權限訪問或者查看全部數據庫的問題---用客戶端第一次打開的時候...

在my.cnf中mysqld目錄下的socket/var/lib/mysql/mysql.sock一行下面添加skip_grant_tables---------------報錯退出然后重新啟動server mysqld restart 登錄進去轉載于:https://www.cnblogs.com/yecao8888/p/5661250.html

HALCON示例程序resistor.hdev通過不同焦距圖像提取深度信息

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序resistor.hdev通過不同焦距圖像提取深度信息 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 Names : [] dev_close_window () for i : 1 to 10 by 1 Names : [Names,‘dff/focus_’ (i$’.2’)…

五軸加工的RTCP技術

五軸加工的RTCP技術【原創整理】 十數年前&#xff0c;一汽為模具加工招標五軸機床&#xff0c;據說當時去了不少國際大牌廠商&#xff0c;招標現場有外商提出他們的產品好&#xff0c;有RTCP功能&#xff0c;在坐的國內廠商和業內專家一時語塞&#xff0c;幾乎無人知曉…

優秀項目解析:區塊鏈上的房地產交易

區塊鏈前哨導語&#xff1a;買房租房中&#xff0c;需要了解多少知識從而規避欺詐風險&#xff1f;如果區塊鏈這一新興技術與房地產這個古老的概念相結合&#xff0c;會碰撞出怎樣的火花&#xff1f;房地產物業的所有權驗證與轉讓將呈現出怎樣的面貌&#xff1f;美國有家科技初…

HALCON示例程序rim.hdev輪圈孔檢測提取字符

小哥哥小姐姐覺得有用點個贊唄&#xff01; HALCON示例程序rim.hdev輪圈孔檢測提取字符 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () dev_open_window (0, 0, 768, 576, ‘black’, WindowID) set_display_font …

Jquery 全選、反選問題解析

最近工作中&#xff0c;需要使用Jquery實現復選框的全選和反選&#xff0c;本人雖然不是專職擼前端的&#xff0c;但這個小問題感覺也沒什么難度&#xff0c;下面直接上代碼&#xff1a; <div id"list"> <ul class"mui-table-view textOverflow"…

分層

1. UI&#xff08;用戶層&#xff09;&#xff0c;BLL&#xff08;業務邏輯層&#xff09;&#xff0c;DAL&#xff08;數據訪問層&#xff09;. UI是用來顯示的&#xff0c;比如說一些顯示的樣式還有界面設計。 BLL是用來處理業務邏輯的問題。 DAL是和數據庫打交道的。 2.數…

德國汽車廠發生機器人殺人事件 人機協作是大勢所趨

OFweek機器人網訊&#xff1a;《金融時報》報道稱&#xff0c;德國大眾汽車制造廠中一個機器人殺死了一名人類工作人員。當時這名21歲的工人正在安裝和調制機器人&#xff0c;后者突然“出手”擊中工人的胸部&#xff0c;并將其碾壓在金屬板上。這名工人當場死亡。 調查人員正對…

H264 視頻文件 幀格式 傳輸封裝等 雜碎

H264 視頻文件 幀格式 傳輸封裝等 雜碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984協議實現H264視頻流媒體nalu單元 包起始 0x 00 00 00 01H&#xff0e;264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy…

Tomcat 調優及 JVM 參數優化

Tomcat 的缺省配置是不能穩定長期運行的&#xff0c;也就是不適合生產環境&#xff0c;它會死機&#xff0c;讓你不斷重新啟動&#xff0c;甚至在午夜時分喚醒你。對于操作系統優化來說&#xff0c;是盡可能的增大可使用的內存容量、提高CPU 的頻率&#xff0c;保證文件系統的讀…