1
我剛剛學習OpenCV,因爲我有一些Matlab的邏輯索引的經驗,我真的很感興趣看到矩陣方法setTo。我最初的嘗試雖然不起作用,但我無法弄清楚爲什麼,所以我會非常感謝您的幫助!爲什麼setTo不能工作(斷言失敗)?
我有一個包含圖像數據的Mat,並且想要將所有大於10的值設置爲零。所以,我所做的:
Mat not_relevant = abs(difference - frame2) > 10;
difference = difference.setTo(0, not_relevant);
然而,這給了我:
OpenCV Error: Assertion failed (mask.empty() || mask.type() == CV_8U) in
cv::Mat::setTo, file
C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\core\src\copy.cpp, line 347
我曾嘗試這樣做使用前轉換not_relevant,差異和幀2,如:
frame2.convertTo(frame2, CV_8UC1);
但是,這並不修復錯誤,所以我不知道我還能嘗試什麼。有誰知道什麼可能是錯的?
謝謝你的幫助!
謝謝omid,它的工作原理!也謝謝你指出我的錯誤 - 我確實沒有意識到convertTo在這裏不起作用。 – noctilux