OpenCV學習筆記(五十六)
08-04
看過OpenCV源代碼的朋友,肯定都知道很多函數的介面都是InputArray或者OutputArray型的,這個介面類還是很強大的,今個就來說說它們的那些事。
InputArray這個介面類可以是Mat、Mat_<T>、Mat_<T, m, n>、vector<T>、vector<vector<T>>、vector<Mat>。也就意味著當你看refman或者源代碼時,如果看見函數的參數類型是InputArray型時,把上訴幾種類型作為參數都是可以的。
有時候InputArray輸入的矩陣是個空參數,你只需要用cv::noArray()作為參數即可,或者很多代碼里都用cv::Mat()作為空參。
這個類只能作為函數的形參參數使用,不要試圖聲明一個InputArray類型的變數
如果在你自己編寫的函數中形參也想用InputArray,可以傳遞多類型的參數,在函數的內部可以使用_InputArray::getMat()函數將傳入的參數轉換為Mat的結構,方便你函數內的操作;必要的時候,可能還需要_InputArray::kind()用來區分Mat結構或者vector<>結構,但通常是不需要的。例如:
[cpp] view plaincopy※新手如何學習UG NX
※古典吉他技巧輪指學習―相關樂譜集合與練習指導
※蒼燃九宮盲派命理學習之回復精編(4)
※無量壽經科注第四回學習班 (第二一八集)