【问题标题】:What would be the hsv range for this in Opencv?Opencv 中的 hsv 范围是多少?
【发布时间】:2016-08-29 18:37:22
【问题描述】:

我现在有点困惑,我找不到这个绿色方块的正确值。这是图像

我选择的 hsv 值是:-

cv::inRange(src, Scalar(25, 20, 20), Scalar(85, 255, 200), src);

下面是这个的输出:-

我应该选择的 hsv 的正确值是多少?

【问题讨论】:

    标签: c++ opencv hsv


    【解决方案1】:

    这些范围应该足够好:

    inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask);
    

    请记住,OpenCV 将图像存储为 BGR,而不是 RGB。因此,当您转换为 HSV 时,请务必使用 COLOR_BGR2HSV,而不是 COLOR_RGB2HSV

    #include <opencv2/opencv.hpp>
    using namespace cv;
    
    int main()
    {
        Mat3b img = imread("path_to_image");
    
        Mat3b hsv;
        cvtColor(img, hsv, COLOR_BGR2HSV);
    
        Mat1b mask;
        inRange(hsv, Scalar(35, 20, 20), Scalar(85, 255, 255), mask);
    
        imshow("Mask", mask);
        waitKey();
    
        return 0;
    }
    

    您可以找到有关 HSV 范围 herehere 的更多详细信息

    【讨论】:

    • 谢谢,这是一个愚蠢的错误,我忘记将其转换为 HSV ..... 另外你能告诉我如何为 HSV 选择范围内的值,我不知道如何找到它们。 ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多