0

Opencv2.4.4 で VS2010express(C++) の findContours 関数を使用しようとしています。コードは以下のとおりです。マットキャニー_出力; std::vector > 輪郭;

/// Detect edges using canny
Canny( src_gray, canny_output, 100, 200, 3 );
/// Find contours
threshold(canny_output,canny_output,0,255,THRESH_BINARY);

findContours( canny_output, contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE );

ただし、プログラムはシステム エラー System.AccessViolationException で常に最後の行でブレークポイントをトリガーします。

誰でも何か考えがありますか?

4

1 に答える 1

0

提案:

  1. であることを確認しcontoursてくださいvector< vector<Point> >
  2. Canny 操作の後、エッジを直接 findContour にフィードできます。なぜしきい値処理を行うのですか? それもしきい値がゼロの場合...その行をスキップします...キャニーの出力はバイナリイメージであるためです。
  3. cannny_outputもグレーのイメージであることを確認してください。

編集:これを試してください..これは外部輪郭を与えます..findcontourがorkingかどうかを確認してください..

findContours(canny_output,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE,Point())

于 2013-03-28T03:13:09.990 に答える