2015年9月17日 星期四

Mat

第一代的openCV用C的型態,儲存資料是以IplImage的結構,使用者需要自行處理記憶體的取得與釋放
第二代openCV以C++的介面進行,資料以Mat的方式儲存。Mat會自行取得與釋放記憶體(但仍可手動進行)。function在必要時(如果給定的輸出Mat尚未取得足夠的記憶體)會自行取得輸出所需要的記憶體。


Mat主要分為固定的大小的header與一個指向大儲存位址的指標,header的大小是固定的。值得注意是,當複製(copy operators)Mat時只會複製header與指標,影像實際儲存的資料是不會被複製的。因為不同的Header可以指向同一區塊,因此相同的data可以給不同ROI的header使用。
當需要複製Mat內的實體data需使用B = A.clone();或A.copyto(B);

沒有留言:

張貼留言