2016-06-23 13 views
0

バイナリしきい値マトリクスに白いハローとして表示されるオブジェクトがあります。私は白のハローを埋めるために、このコードを作ったので、私は、マトリクス状に固形白丸を持つことができます。OpenCV複数のオブジェクトのバイナリマットの穴を埋める

void processBinary(Mat& binaryMat) { 
    Mat clone; 
    binaryMat.copyTo(clone); 
    vector<vector<Point>> contours; 
    findContours(clone, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE); 

    if (!contours.empty()) { 
     drawContours(binaryMat, contours, 0, Scalar(255), CV_FILLED); 
    } 
} 

私はカメラフィード内の1つのオブジェクトを持っている場合、これは動作します。しかし、同じオブジェクトが複数存在する場合、シーンからオブジェクトの1つを除くすべてを削除しない限り、オブジェクトの塗りつぶしは実行されません。どのようにコードを修正して、各オブジェクトが白い丸で塗りつぶされるようにすることができますか?

+2

'drawContours(binaryMat、contours、-1、Scalar(255)、CV_FILLED);' – sturkmen

+0

がうまくいきました。 –

答えて

-1

drawContoursメソッドはすべての輪郭をループしますか? コントロールは基本的にはリンクされたリストとして与えられ、while(contours!= null)を呼び出すことでそれらを得るためにループされなければなりません .... contours = contours.VNext; //コードに応じてHNext。

関連する問題