我想在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);
当我在OpenCV中使用色彩空间时遇到了这个问题。就像@Andrey Smorodov在评论中提到的那样,值#b4bab8是十六进制的,可以在任何颜色空间中解释。如果您提到的RGB值为180,186,184,请遵循以下步骤进行OpenCV在使用Imgproc.cvtcolor()时使用的转换。转换与此不同,因此它适用于RGB到BGR,但不适用于BGR2HSV。另外,请确保您进行的转换与矩阵的正确类型相对应。
例如,对于CV_32FC3类型的矩阵,RGB(245,172,127)将是LUV(2.55 * 76.3,255 *(134 + 53.3)/358.0,255 *(39.5 +140)/ 262.0)。您可以简单地制作具有所需颜色的空(RGB)图像(180,186,184),然后使用cvtcolor更改BGR2HSV(注意:OpenCV将所有RGB图像加载为BGR)并检查HSV色彩空间中的值是什么。让我知道是否有帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句