1

我正在尝试使用 cvInRangeS 从图像中删除某种颜色。我已经完成了本教程,但是我返回的掩码似乎只包含 0 个值。这是我的代码的副本:

-(IplImage*)removeBackgroundLinear:(IplImage*) inImg{
    IplImage *imgHSV =cvCreateImage(cvGetSize(inImg), 8, 3);
    cvCvtColor(inImg, imgHSV, CV_BGR2HSV);

    IplImage* mask = cvCreateImage(cvGetSize(inImg), 8, 1);
    cvZero(mask);

    cvInRangeS(imgHSV, cvScalar(20, 100, 100), cvScalar(30, 255, 255), mask);
    cvReleaseImage(&imgHSV);
    return mask;
}

这可能是什么原因造成的?当然,我正在针对内部带有黄色对象的图像尝试我的代码。

谢谢。

4

1 回答 1

0

尝试改变黄色范围

尝试这个 :

cvScalar(25, 80, 80,80), cvScalar(34, 255, 255,255)

你可以使用任何程序来获得你需要的颜色colorpicker.exe

于 2013-01-12T17:44:29.657 回答