2017-07-27 215 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”。这导致了这个问题。