0

当我使用 Open CV 编程打开我的 System 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);
4

1 回答 1

1

阅读文档怎么样?

inRange

检查数组元素是否位于其他两个数组的元素之间。

实际上那篇文章包含明确的解释:

并且两个 cvScalar 代表颜色为黄色的值的下限和上限。

关于第二个代码。从该计算作者找到对象的中心及其正方形。引用文章:

您首先为矩结构分配内存,然后计算各种矩。然后使用矩结构,计算两个一阶矩(矩 10 和矩 01)和零阶矩(面积)。

将 moment10 除以面积得出黄球的 X 坐标,类似地,将 moment01 除以面积得出 Y 坐标。

于 2013-01-19T11:21:08.373 回答