我想在Visual Studio 2013中使用OpenCV v3.0測試一些運動估計(這可能是我的第一個錯誤!)。我得到一個未處理的異常,試圖使用createOptFlow_DualTVL1()和createOptFlow_Farneback(),然後,爲了測試,嘗試cv :: accumulate(),它拋出了相同的異常。異常拋出InputOutputArray
看來,OpenCV不能寫入我傳遞這些函數的Mat對象。我無法讀取實際的cvException,因爲我沒有PDB文件,因爲我自己沒有編譯這個版本。這可能是我的下一站,但在我之前我想我會看到有沒有人看到過這種行爲。
這裏有一個最小的工作示例:
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/video/tracking.hpp>
#include <opencv2/videoio/videoio.hpp>
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <string>
#include <regex>
using namespace std;
using namespace cv;
int main(int argc, const char** argv)
{
VideoCapture captureDevice;
std::string videoname = "example.mp4";
captureDevice.open(videoname);
//setup image files used in the capture process
Mat currFrame, dst;
captureDevice >> currFrame;
accumulate(currFrame, dst, cv::noArray());
imshow("outputCapture", dst);
//pause for 33ms
waitKey(33);
return 0;
}
:DST =墊(currFrame.size(),CV_32FC3,標量::所有( 0)); //因爲Mat.create不會初始化內存 – berak 2014-10-28 20:17:53
也:convert(dst_disp,CV_8UC3,1.0/N); //一次性完成。 – berak 2014-10-28 20:19:28
感謝您的改進@berak。我已更新這篇文章以引用您的意見。 – bikz05 2014-10-28 20:23:09