自從版本2.0,,OpenCV采用了新的數(shù)據(jù)結(jié)構(gòu),,用Mat類結(jié)構(gòu)取代了之前用extended C寫的cvMat和lplImage,,更加好用啦,,最大的好處就是更加方便的進行內(nèi)存管理,,對寫更大的程序是很好的消息,。 需要注意的幾點:1. Mat的拷貝只是復(fù)制了Mat的信息頭,,數(shù)據(jù)的指針也指向了被拷貝的數(shù)據(jù)地址,,而沒有真正新建一塊內(nèi)存來存放新的矩陣內(nèi)容,。這樣帶來的一個問題就是對其中一個Mat的數(shù)據(jù)操作就會對其他指向同一塊數(shù)據(jù)的Mat產(chǎn)生災(zāi)難性的影響。 2.建立多維數(shù)組的格式是這樣的
3.傳統(tǒng)的lplImage格式也可直接轉(zhuǎn)換為Mat格式
如果想將新版本的Mat格式轉(zhuǎn)換為老版本,,則需要如下調(diào)用:
不過更安全的調(diào)用格式為:
4.Mat結(jié)構(gòu)更加友好,,很多操作更接近matlab的風(fēng)格 5.也有Point2f,Point3f,,vector等數(shù)據(jù)結(jié)構(gòu)可以使用 6.RNG類可以產(chǎn)生隨機數(shù) 7.實現(xiàn)顏色通道的分離使用函數(shù)split |
|