C++ HSV和范围内方法不适用';我不能正常工作
我在OpenCV中使用C++ HSV和范围内方法不适用';我不能正常工作,c++,opencv,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; u
.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);
}
}
#包括
#包括
#包括
#包括
使用名称空间std;
使用名称空间cv;
int main(int argc,字符**argv)
{
while(true){
Mat input=imread(“/home/xenups/Desktop/szpAl.png”);
Mat-hsv;
垫输出;
CVT颜色(输入、hsv、CV_BGR2HSV);
范围(hsv,标量(244194194),标量(255,0,0),输出);
imshow(“ss”,输入);
imshow(“redOnly”,输出);
等待键(2);
}
}
我使用了不同的标量颜色标量(244,194,194),标量(255,0,0),但我仍然存在这个问题。您的标量值错误,hsv图像的最大值为(179255255)。使用颜色选择器确定所需的值。在输入图像上使用inRange(),而不是在hsv图像上@Dennis nope,他的用法是正确的,除了关于色调除以2的注释外,还忽略了不可靠的标量值:你不应该也给色调通道添加一些(小)范围吗???我使用了不同的标量颜色标量(244,194,194),标量(255,0,0)从[enter link description here][1],我仍然有这个问题![在这里输入图像描述][2][1]:@bicker关于红色的观点很好,不仅仅是红色,这显然是一个软弱的时刻!