【发布时间】:2017-04-22 07:57:44
【问题描述】:
我想检测 OpenCV 中的白色/灰色对象,因此我需要将 #B4BAB8 转换为 OpenCV HSV 值。试了很多东西,就是不知道怎么计算这个颜色的lowerb和upperb..#B4BAB8是物体的颜色。
我应该在cv::inRange(frmHsv, cv::Scalar([WHAT VALUE?]), cv::Scalar([WHAT VALUE?]), rangeRes); 中使用什么值?
cv::Mat frmHsv;
cv::cvtColor(blur, frmHsv, CV_BGR2HSV);
// <<<<< HSV conversion
// >>>>> Color Thresholding
// Note: change parameters for different colors
cv::Mat rangeRes = cv::Mat::zeros(rgbmat.size(), CV_8UC1);
cv::inRange(frmHsv, cv::Scalar([WHAT VALUE?]), cv::Scalar([WHAT VALUE?]), rangeRes);
【问题讨论】:
-
#B4BAB8 - 适用于 RGB、BGR、HSL、HSV/HSB、CMYK、CIE-LAB 可能是其他颜色的 sheme 图像?无论如何检查colorizer.org和docs.opencv.org/2.4/modules/imgproc/doc/…它可能对你有用。
-
我不明白你的意思
-
我的意思是十六进制值 B4BAB8 只是一个数字。它可能是 R=B4 , G= BA, B=B8 或 H=B4, S=BA, V=B8 或 L=B4, a=BA, B=BA 或任何其他色彩空间分量,甚至是非常 HDR灰度值。没有像“十六进制”这样的颜色空间,它只是一般的数字表示形式。
-
#b4bab8 颜色 RGB 值为 (180,186,184)。
-
我需要将其转换为 lowerb 和 upperb 以检测我的对象。如何使用 OpenCV 做到这一点?