使用 EMGU CV 进行棕色和蓝色物体检测

Brown and Blue Color Object detection using EMGU CV

我正在使用模板匹配来检测棕色图像并将阈值设置为 0.7 以接受正确匹配。我为棕色图像创建了一些模板,但每次我用模板检查新的棕色图像时,我都会得到 0.4 的低分,即使图像差异很小可能是一些斑点或光照。我尝试了很多但无法检测到。由于每次分数不同,需要添加很多模板才能实现。

我正在将图像转换为灰度并进行一些预处理

    Image<Gray, byte> grayFrameimgModelROIvariable = ((Image<Bgr, byte>)imgModelROIPic.Image).Convert<Gray, byte>();
    Image<Gray, byte> grayFrameimgInspTemplateVariable = ((Image<Bgr, byte>)imgInspectedROIPic.Image).Convert<Gray, byte>();

    grayFrameimgModelROIvariable.PyrDown();
    grayFrameimgModelROIvariable.PyrUp();

    grayFrameimgInspTemplateVariable.PyrDown();
    grayFrameimgInspTemplateVariable.PyrUp();

    grayFrameimgModelROIvariable._SmoothGaussian(3);
    grayFrameimgInspTemplateVariable._SmoothGaussian(3);

请帮忙

@Shabbir, 您是否正在使用灰度图像来尝试区分棕色和蓝色?如果是这样,IMPO,那可能不是最好的解决方案。如果是我,我会使用 HSV 色标的 H(色调)来确定然后切换到灰度。

这篇文章Color spaces in OpenCV可能会有一些用处。

道格