我现在有点困惑,我找不到这个绿色方 block 的正确值。这是图片
我选择的 hsv 值是:-
cv::inRange(src, Scalar(25, 20, 20), Scalar(85, 255, 200), src);
我应该选择的 hsv 的正确值是多少?
最佳答案
这些范围应该足够好:
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;
}
关于c++ - Opencv 中的 hsv 范围是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212955/