我现在正在处理汽车点火程序。现在我想在每辆车上显示斑点的大小或面积,以找出每种车辆的大小相似性,我将尝试对它们进行分类。但是,我真的不知道如何显示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);
}
}
}
答案 0 :(得分:0)
cv::Rect::area
是Rect
类的方法,而不是属性。
这意味着你必须使用如下括号来调用方法:blobs[i].currentBoundingRect.area()
。