Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ HSV和范围内方法不适用';我不能正常工作_C++_Opencv - Fatal编程技术网

C++ HSV和范围内方法不适用';我不能正常工作

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

我在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);
    }
}
#包括
#包括
#包括
#包括
使用名称空间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关于红色的观点很好,不仅仅是红色,这显然是一个软弱的时刻!