我想分析使用轮廓接收到的斑点。但是,我遇到了一个小问题,在使用以下代码之前和之后分析blob有何区别?

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

在使用上面的代码之前,只有一些边界线,使用代码之后,我们可以看到白色斑点。如附件所示。

最佳答案

您想要遍历可能的斑点,然后对其进行分析(区域,周长等)。

您的轮廓在 vector 中称为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

关于opencv - 使用轮廓混淆分析 Blob ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14929746/

10-09 06:02