我使用的是CvBlob库,CvBlob结构位于
之下 struct CvBlob
{
CvLabel label; ///< Label assigned to the blob.
union
{
unsigned int area; ///< Area (moment 00).
unsigned int m00; ///< Moment 00 (area).
};
unsigned int minx; ///< X min.
unsigned int maxx; ///< X max.
unsigned int miny; ///< Y min.
unsigned int maxy; ///< y max.
CvPoint2D64f centroid; ///< Centroid.
double m10; ///< Moment 10.
double m01; ///< Moment 01.
double m11; ///< Moment 11.
double m20; ///< Moment 20.
double m02; ///< Moment 02.
double u11; ///< Central moment 11.
double u20; ///< Central moment 20.
double u02; ///< Central moment 02.
double n11; ///< Normalized central moment 11.
double n20; ///< Normalized central moment 20.
double n02; ///< Normalized central moment 02.
double p1; ///< Hu moment 1.
double p2; ///< Hu moment 2.
CvContourChainCode contour; ///< Contour.
CvContoursChainCode internalContours; ///< Internal contours.
};
我有两个问题:
如何知道带有(x,y)坐标的像素是blob?
我不理解这个结构中所有字段的含义,有人可以向我解释一下吗?
非常感谢!
T&amp; T公司
答案 0 :(得分:1)
1-从未使用过cvblob,但似乎是你所需要的pointPolygonTest。
像
这样的东西pointPolygonTest(contour, Point2f(x,y), false);
应该使用。
2-这个结构看起来像是opencv中使用的shape descriptors的接口。时刻,区域,时刻等都被包裹着。 Moments
用于查找质心(质心),面积,旋转不变性和一般的形状匹配。 Contour
是你的blob的边界。 Internal contours
是位于里面的儿童轮廓。 Max and min points
是外部点,可以帮助定义边界矩形。 Label
似乎只是一张贴纸