2017-07-27 84 views
2

我試着使用的OpenCV的HOG特徵提取(3.2),但它始終會導致一個訪問衝突(約德語文本不好意思):訪問衝突在OpenCV中使用hog.compute(...)

Ausnahme ausgelöst bei 0x000007FEC6AB12F5 (opencv_world320d.dll) in roi_detect.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x0000000000000000. 

我已經嘗試過使用多個參數和不同大小的圖像,但這個異常是隨時引起的。

請看看下面的代碼,剪斷:

cv::Mat mat = cv::imread(input, cv::IMREAD_GRAYSCALE);  
cv::Mat res; 
cv::Size size(128, 128); 
cv::resize(mat, res,size); 
cv::HOGDescriptor hog(cv::Size(128,128), cv::Size(8, 8), cv::Size(4,4), cv::Size(4, 4), 9); 
std::cout << "Computing HOGs..." << std::endl; 
hog.compute(res, descriptor); 
std::cout << "Computed HOGs" << std::endl; 

其實我已經調整圖像的「使用winsize」參數的大小,即使一些消息人士說,它實際上不是事業這個問題。

+0

哪個編譯器?調試或發佈構建?並且,請製作一個能夠重現問題的完整[mcve](我們可以在不添加任何代碼的情況下進行編譯) –

+1

我將很快提供完整的代碼。 MSVC14和兩者,調試和發佈。這些DLL也是VC14版本。 –

+0

我已經更新了相應的問題。您實際上只需將圖像讀取爲灰度。 –

回答

0

我發現問題的答案以防其他人遇到同樣的問題。

如果在Visual Studio中將應用程序構建爲Release,請確保OpenCV DLL的發行版可用於您的應用程序。

我不小心將後綴爲「d」的dll放在我的應用程序的工作目錄中,該應用程序構建爲「Release」。這導致了這個問題。