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 に答える