1

私はopencv.orgでこの質問をしましたが、運が悪かったので、ここの誰かが私を助けてくれることを願っています.

顔/視線追跡ソフトウェアを開発しています。目からいくつかの値を測定します (たとえば、まばたき)。しかし、メソッドを使用したいとき

cv::findContour()

プログラムがクラッシュし、「Windows が eyeTracking.exe でブレークポイントをトリガーしました.....」 コンソールに opencv からのエラー メッセージは表示されません。

m = ~currentWebCamFrame(trackP.EyePosition(false));
cv::cvtColor(m,n, CV_RGB2GRAY);
cv::threshold(n, m, threshold-value, 255,CV_THRESH_BINARY);
cv::erode(m, n, cv::Mat(),cv::Point(-1,-1),n_erode_dilate);
cv::dilate(n, m, cv::Mat(),cv::Point(-1,-1),n_erode_dilate);

test = m.clone();

if((!test.empty()) && (test.type() == CV_8UC1)){
std::vector< std::vector<cv::Point> > contours;
cv::findContours( test, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE );
};

インターネットを検索したところ、このような同様の投稿がいくつか見つかりましたが、解決策はありません。

私の投稿 @ opencv.org : http://answers.opencv.org/question/12887/opencvfindcontour-crashes-v244-ms-visual-studio/ findContour が呼び出される直前に画像が表示される場所。

私はこれを数日間解決しようとしましたが、運がありませんでした。ですから、ここの誰かがこの問題を解決するのを手伝ってくれることを本当に願っています.

編集: ブレークポイント ウィンドウで [続行] をクリックすると、次のメッセージが表示されます。

Unhandled exception at 0x770540f2 in eyeTracking.exe: 0xC0000374: A heap is damaged.

ありがとう!

4

2 に答える 2

5

使用した DLL を確認する必要があるかもしれません。デバッグとリリース dll を混在させると、問題が発生する可能性もあります。

于 2013-05-07T16:11:01.570 に答える
0

問題は、間違った opencv ライブラリにリンクしていたことです。デバッグ中にいくつかのリリース ライブラリを使用しました。ライブラリをデバッグするように変更すると、すべてが機能しました。

于 2013-05-06T08:43:03.500 に答える