当我使用open CV编程打开我的System CAM时,我要检测一个黄色对象,我从open CV中的教程对象识别中得到了一些帮助,但我不清楚这行代码,它做了什么,我不知道。请详细说明我正在使用的下面一行代码。
cvInRangeS(imgHSV, cvScalar(20, 100, 100), cvScalar(30, 255, 255), imgThreshed);
程序其他部分:
CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments));
cvMoments(imgYellowThresh, moments, 1);
// The actual moment values
double moment10 = cvGetSpatialMoment(moments, 1, 0);
double moment01 = cvGetSpatialMoment(moments, 0, 1);
double area = cvGetCentralMoment(moments, 0, 0);
如何阅读文档?
inRange
:
检查数组元素是否位于其他两个数组的元素之间。
实际上那篇文章有明确的解释:
两个cvscalar表示值的下界和上界颜色是淡黄色的。
关于第二个代码。由此计算出物体的中心及其平方。引用自文章:
首先将内存分配给moments结构,然后计算不同的力矩。然后使用力矩结构,计算两个一阶矩(moment10和moment01)和零阶矩(面积)。
将力矩10除以面积得到黄球的X坐标,同样,将动量1除以面积得到Y坐标。