0

等高線を使用して受信したブロブを分析したいと考えています。ただし、次のコードを使用する前後でブロブの分析に違いがあるというわずかな問題に遭遇しましたか?

for(unsigned int i = 0; i < rects3.size(); i++) {
    Scalar color = Scalar(255,255,255);
    drawContours( drawing3, contours3, i, color, CV_FILLED, 8);
}

上記を使用する前は境界線がいくつかあるだけで、コードを使用した後は白い塊が見えます。添付のとおり、その例です。

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

1

可能性のあるブロブを繰り返し処理してから、それを分析します (面積、周囲など)。

あなたの輪郭はrects3と呼ばれるベクトルにあります。

// iterating trough
for(unsigned int i = 0; i < rects3.size(); i++) {
    // get the bounding box of one contour
    Rect rect = boundingRect(rects3[i]);

    //area
    double area = contourArea(rects3[i]);

    //perimiter
    double perimiter = arcLength(rects3[i], true);

}

http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.htmlを参照してください

于 2013-02-18T06:33:11.857 に答える