c++ - Opencv 中的 hsv 范围是多少?

标签 c++ opencv hsv

我现在有点困惑,我找不到这个绿色方 block 的正确值。这是图片 enter image description here

我选择的 hsv 值是:-

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

这是这个的输出:- enter image description here

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

最佳答案

这些范围应该足够好:

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

enter image description here

请记住,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

关于c++ - Opencv 中的 hsv 范围是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212955/

相关文章:

c++ - 未定义对 avr-g++ 中元素的引用

c++ - 使用对象的生命周期作为 setter 的安全性

python - OpenCV掩码操作,c++中的元素赋值

python - 提取部分图像

c++ - IplImage 在 openCV C++ 中打开图像

python - 从 float64 到 uint8 的有损转换

java - 在 OpenCV (Java) 中获取正确的 HSV 颜色 inRange

c++ - 使用 boost::threadGroup 时 opencv kmeans 中没有随机初始化

c++ - mp3 文件长度显示不正确

python - 从特定帧开始读取视频