如何显示车辆分类的Blob大小?

时间:2017-05-14 10:53:59

标签: c++ opencv

我现在正在处理汽车点火程序。现在我想在每辆车上显示斑点的大小或面积,以找出每种车辆的大小相似性,我将尝试对它们进行分类。但是,我真的不知道如何显示Blob的大小,我尝试使用blobs [i] .currentBoundingRect。当我这样做出现options列表时,我可以使用其中任何一个吗?你能否就Blob的尺寸显示和车辆分类给我一些建议或建议?提前谢谢。

P / s:当我尝试blobs [i] .currentBoundingRect.area时,会出现错误:非标准语法;使用'&'创建指向成员的指针。在区域后添加括号后,发生另一个错误:错误C2248:'cv :: String :: String':无法访问在类'cv :: String'中声明的私有成员

void drawBlobInfoOnImage(std::vector<Blob> &blobs, cv::Mat &imgFrame2Copy) {

    for (unsigned int i = 0; i < blobs.size(); i++) {

         if (blobs[i].blnStillBeingTracked == true) {
            cv::rectangle(imgFrame2Copy, blobs[i].currentBoundingRect, SCALAR_RED, 2);

            int intFontFace = CV_FONT_HERSHEY_SIMPLEX;
            double dblFontScale = blobs[i].dblCurrentDiagonalSize / 60.0;
            int intFontThickness = (int)std::round(dblFontScale * 1.0);

            cv::putText(imgFrame2Copy, blobs[i].currentBoundingRect.height, blobs[i].centerPositions.back(), intFontFace, dblFontScale, SCALAR_GREEN, intFontThickness);
        }
    }
}  

1 个答案:

答案 0 :(得分:0)

cv::Rect::areaRect类的方法,而不是属性。 这意味着你必须使用如下括号来调用方法:blobs[i].currentBoundingRect.area()