我在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)
,但我仍有这个问题。
答案 0 :(得分:0)
您的标量值错误,hsv图像的最大值为(179,255,255)。使用颜色选择器来确定所需的值。