我現在有這個問題好幾天了,我找不到解決辦法。將一個cv :: Mat數組傳遞給C中的函數
我試圖儲存品種的數組::墊和辦法,我到目前爲止做的,這是由具有一個 std::vector<cv::Mat> store_frames(32);
,每次我只是複製新幀,其位置與frame.copyTo(store_frames[i])
。 這工作正常,如果它在主要內部,但如果我想將它傳遞給一個函數,做同樣的事情,它不再好。 我沒有與簡單的墊子相同的問題。我只是宣佈他們在全球頭 cv::Mat frame;
內,如果我有一個函數:
void function(cv::Mat &f1) {
..
f1.at<float>(10,10) += 100;
..
}
然後調用函數function(frame);
所有函數內部的變化將被保存。所以我們可以說我有類似
...
for(int i=0; i<5; i++) {
function(frame);
std::cout<<frame.at<float>(10,10)<<' ';
}
輸出(假設frame.at(10,10的初始值)將 100 200 300 400 500
問題現在,我不能做首先,如果我試圖在標題中以同樣的方式聲明它std::vector<cv::Mat> store_frames(32);
我在編號32時得到一個錯誤,說Error: expected a type specifier
如果我只是說std::vector<cv::Mat> store_frames;
那麼它不會知道它的大小。我看到有人打電話給store_frames.resize
我試過這樣做,但我得到一個錯誤,說this declaration has no storage class or type specifier
。我查了互聯網尋找解決方案,但沒有找到任何。我知道這個問題本身可能聽起來很愚蠢,但我對此並不熟悉,而且我也不太瞭解。
所以我的問題是如何聲明這個向量,以便它可以傳遞給一個函數,修改它的內部和修改將被保存?
謝謝!