目錄
先看結論
**演示下
效果什麼樣
今天抽空整理了一下關於opencv中mat這個容器的深淺拷貝問題
什麼是深拷貝?什麼又是淺拷貝?
而到了opencv的mat時,有幾種賦值方式分別為:
1、 b = a.clone();
2、 a.copyto(b);
3、 b = a;
4、 b(a);
先給結論!先給結論!先給結論!
深拷貝是 b = a.clone(); 和 a.copyto(b);
淺拷貝是 b = a;和 b(a);
本著實踐出真知的目的簡單寫了下面的測試方法 懶得看的童鞋可以自行散場了..
#include int main()
效果圖:
看完上面**的童鞋會注意到其中還測試了opencv中的roi(感興趣區域------就是影象擷取),在opencv中
roi它也是淺拷貝!它也是淺拷貝!它也是淺拷貝!
int main()
// std::string str = "clone";
// cv::puttext(mimgray,str,cv::point(200,100),cv::font_italic, 1, cv::scalar(255,0,0),2);
imshow("imrgb", imrgb);
imshow("mimgray", mimgray);
waitkey();
return 0;
}//試驗結果: imrgb還是彩色影象,沒有發生變換, mimgray變成了灰度影象
結束! 淺拷貝 深拷貝
copy mutablecopy copy 不管是可變的,還是不可變的,結果都是不可變的 mutablecopy 不管是不可變的,還是可變的,結果都是可變的 nsmutablestring str nsmutablestring stringwithformat a nsarray arr1 str...
深拷貝 淺拷貝
c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...
淺拷貝 深拷貝
retain是建立乙個指標,引用物件計數加1。copy屬性表示兩個物件內容相同,新的物件retain為1 與舊有物件的引用計數無關,舊有物件沒有變化。copy減少物件對上下文的依賴。retain屬性表示兩個物件位址相同 建立乙個指標,指標拷貝 內容當然相同,這個物件的retain值 1也就是說,re...