1
我正在尋找漢明距離幫助下的視頻差異。這裏是我的代碼:OpenCV.norm中的聲明錯誤
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char** argv)
{
char const* filename = ("video.mp4");
VideoCapture video(filename);
Mat frame, temp;
for(unsigned int i = 0; i<100; i++)
{
video >> frame;
if (i > 0)
{
double dist = norm(frame, temp, NORM_HAMMING);
cout<<"Dist= "<< dist <<endl;
}
temp = frame;
}
return 0;
}
的問題是,在
double dist = norm(frame, temp, NORM_HAMMING);
程序降至
**OpenCV Error**: Assertion failed (normType == NORM_INF || normType == NORM_L1 || normType == NORM_L2 || normType == NORM_L2SQR || ((normType == NORM_HAMMING || normType == NORM_HAMMING2) && src1.type() == CV_8U))in norm, in file /home/andrio/.local/share/Trash/files/build/OpenCV/modules/core/src/stat.cpp, line 3123 terminate called after throwing an instance of 'cv::Exception' what(): /home/andre/.local/share/Trash/files/build/OpenCV/modules/core/src/stat.cpp:3123: error: (-215) normType == NORM_INF || normType == NORM_L1 || normType == NORM_L2 || normType == NORM_L2SQR || ((normType == NORM_HAMMING || normType == NORM_HAMMING2) && src1.type() == CV_8U) in function norm
UPD:此代碼的工作:
double dist = norm(frame, temp, NORM_L2);
那麼,當您調用該函數時,「幀」矩陣的數據類型是什麼?實際上是否有任何圖像加載?在將其作爲參數傳遞給其他函數之前,您不會嘗試進行驗證。 –
frame.type()和temp.type()輸出爲16.這裏[OpenCV](http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html)沒有說明應該是什麼一個數組類型。 –