1. 程式人生 > >copyTo和clone的區別

copyTo和clone的區別

一個 net 效果 http strong style inline font 實現

OpenCV中mat::copyto( )函數使用方法

  使用OpenCV庫進行圖像處理時,經常會用到clone和copyTo函數,這裏對兩個函數進行介紹。

  • copyTo函數

  實現和clone一樣的功能,但一般多用於掩模貼圖

1 Mat src = imread(imagepath); 
2 Mat src_temp;
3 src.copyTo(src_temp);

  另外用途最廣的是它的貼圖功能:

1 src.copyTo(src_temp, mask);

  其中mask為一個二值的掩模圖像,如果如果在某個像素點(i, j)其值為1,則把src中對應位置的像素復制到src_temp中,其余為0的位置像素保持不變。

  • clone函數

  分析源碼可以看出,該函數的實現是copyTo的第一種用法:

1 inline Mat Mat::clone() const
2 {
3    Mat m;
4     copyTo(m);
5     return m; 
6 }

  多用於復制圖片,比如讀入一張圖像,對其進行處理時,只是想看下效果並不像讓原圖發生變化,這時候可以重新聲明如下:

1 Mat src = imread(imagepath);
2 Mat src_temp = src.clone();

copyTo和clone的區別