当我使用Open CV编程打开我的系统CAM时,我将检测到一个黄色对象,我从教程Object Recognition in 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);
答案 0 :(得分:1)
阅读documentation怎么样?
检查数组元素是否位于另外两个数组的元素之间。
实际上那篇文章包含了明确的解释:
两个cvScalars代表值的下限和上限 颜色偏黄。
关于第二个代码。从该计算中,作者找到了物体的中心及其正方形。引自文章:
首先将内存分配给时刻结构,然后再分配给你 计算各种时刻。然后使用矩结构, 你计算两个一阶矩(moment10和moment01)和 零阶(区域)。
按区域划分moment10给出黄球的X坐标, 同样,将moment01除以区域给出Y坐标。