c++多執行緒程式設計:C2672

CaptainSG發表於2020-11-11

專案場景:

C++多執行緒程式設計,實現多目標跟蹤 opencv3.4.3 + vs2015

問題描述:

嚴重性 程式碼 說明 專案 檔案 行 禁止顯示狀態 錯誤 C2672 “std::invoke”: 未找到匹配的過載函式 MOT d:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread 240 錯誤 C2893 未能使函式模板“unknown-type std::invoke(_Callable &&,_Types &&...)”專用化 MOT d:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread 240

在這裡插入圖片描述


原因分析:

此處錯誤原因是實參和形參的資料型別不同。 檢測框初始化時,使用的cv::Rect, 而進行目標跟蹤時,形參是cv::Rec2d. 引數不匹配,導致出現過載錯誤

解決方案:

將初始化後的跟蹤框的型別更改為cv::Rect2d,統一引數格式 格式轉換程式碼:
bboxes.push_back(cv::Rect2d(bboxes_[i].x, bboxes_[i].y, bboxes_[i].width, bboxes_[i].height));

相關文章