cvCopy與cvCloneImage的區別

2021-06-22 05:36:34 字數 949 閱讀 9236

/* copies source array to destination array */

cvapi(void)cvcopy( const cvarr* src, cvarr* dst,

const cvarr* mask cv_default(null) );

/* creates a copy of ipl image (widthstep may differ) */

cvapi(iplimage*)cvcloneimage( const iplimage* image );

如果設定了roi等引數的時候,cvcopy只是複製被設定的區域,複製到乙個和所設定引數相吻合的新的iplimage中

而cvcloneimage則是將整個iplimage結構複製到新的iplimage中,其中的roi等引數也會一同複製。新的iplimage將會和原來的一模一樣。

cvcopy的原型是:

void cvcopy( const cvarr* src, cvarr* dst, const cvarr* mask=null );

在使用這個函式之前,你必須用cvcreateimage()一類的函式先開一段記憶體,然後傳遞給dst。cvcopy會把src中的資料複製到dst的記憶體中。

cvcloneimage的原型是:

iplimage* cvcloneimage( const iplimage* image );

在使用函式之前,不用開闢記憶體。該函式會自己開一段記憶體,然後複製好image裡面的資料,然後把這段記憶體中的資料返回給你。

clone是把所有的都複製過來,也就是說不論你是否設定roi,coi等影響copy的引數,clone都會原封不動的轉殖過來。

copy就不一樣,只會複製roi區域等。用clone複製之後,源影象在記憶體中消失後,複製的影象也變了,而用copy複製,源影象消失後,複製的影象不變

Opencv中cvCopy的用法

函式原型 void cvcopy const cvarr src,cvarr dst,const cvarr mask null 1 如果mask為0時,則將src複製到dst中 2 如果mask不是null,也就是說mask是乙個陣列,並且是乙個和dst or src大小完全一致的陣列。所代表含義...

SQL與NoSQL MySQL與NoSQL的融合

寫這一篇內容的原因是mysql5.6.2突然推出了memcached的功能。nosql to innodb with memcached的出現,可以看出nosql對關聯式資料庫的確產生了巨大的影響,個人覺得這是乙個非常大的進步,可以讓開發人員更加方便的使用nosql和關聯式資料庫。nosql一般被認...

指標與陣列 a與 a區別

假設宣告了乙個陣列a,則 a表示陣列a的首位址,a與 a 0 表示陣列a首元素的首位址,那麼 a 1與a 1有哪些區別呢?通過下面的實驗來說明。int i 0 int a 5 int p int a 1 for i 0 i 5 i printf a 0x p,a 0x p,a 1 0x p n a,...