使用OpenCV中的hog.compute(...)进行访问冲突

时间:2017-07-27 15:47:05

标签: c++ opencv

我尝试使用OpenCV(3.2)的HOG功能提取器,但它总是导致访问冲突(对德语文本感到抱歉):

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;

我实际上将图片大小调整为&#34; WinSize&#34;参数,即使某些消息来源说它实际上不是这个问题的原因。

1 个答案:

答案 0 :(得分:0)

如果其他人遇到同样的问题,我找到了问题的答案。

如果您在Visual Studio中将应用程序构建为Release,请确保您的应用程序可以使用OpenCV DLL的发行版本。

我不小心将带有后缀“d”的DLL放在我的应用程序的工作目录中,该目录被构建为“Release”。这导致了这个问题。