2017-07-27 26 views
2

に私はOpenCVののHOG特徴抽出(3.2)を使用しようとしたが、それは常に(ドイツ語テキストについて申し訳ありません)アクセス違反が発生します。アクセス違反は、OpenCVの

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でアプリケーションをリリースとしてビルドする場合は、OpenCV DLLのリリースバージョンをアプリケーションで使用できることを確認してください。

「リリース」としてビルドされたアプリケーションの作業ディレクトリに、誤って接尾辞「d」のDLLを配置しました。これにより問題が発生しました。