HSV和范围方法无法正常工作

时间:2014-09-20 15:53:45

标签: c++ opencv

我在OpenCV中使用.inRange()方法时遇到问题。

我将帧转换为HSV,而当我使用.inRange()时,它不会过滤正确的颜色。

任何人都可以帮助我吗?

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    while(true){
    Mat input = imread("/home/xenups/Desktop/szpAl.png");
    Mat hsv;
    Mat output;
    cvtColor(input, hsv, CV_BGR2HSV);
    inRange(hsv, Scalar(244, 194, 194), Scalar(255, 0, 0), output);
    imshow("ss",input);
    imshow("redOnly", output);
    waitKey(2);
    }
}

我使用了来自this site的不同标量颜色Scalar(244, 194, 194), Scalar(255, 0, 0),但我仍有这个问题。

1 个答案:

答案 0 :(得分:0)

您的标量值错误,hsv图像的最大值为(179,255,255)。使用颜色选择器来确定所需的值。