[英]Cast a multidimensional cv::Mat to std::vector<cv::Mat>&
如果我有這樣的變量:
cv::Mat data[3];
我如何將它傳遞給需要輸入的 function :
void function_name(std::vector<cv::Mat>& data);
創建一個向量並使用數組對其進行初始化並將其傳遞給function_name()
function:
std::vector<cv::Mat> v(data, data + (sizeof data / sizeof data[0]));
function_name (v);
其他方法可能是傳遞一個臨時的 object 但在這種情況下, function_name()
參數應該是const
。 僅當您不對function_name()
中的參數data
進行任何更改時才可行:
void function_name(const std::vector<cv::Mat>& data);
^^^^^
通過此更改,您可以像這樣調用function_name()
function:
function_name (std::vector<cv::Mat>(data, data + (sizeof data / sizeof data[0])));
你可以寫一個 function 接受一個cv::Mat*
並返回一個std::vector<cv::Mat>
std::vector<cv::Mat> ptrToVec(cv::Mat* matPtr){
int index=0;
std::vector<cv::Mat> ret;
while(matPtr)
ret.push_back(matPtr[index++]);
return ret;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.