gpt4 book ai didi

c++ - 如何从 C++ 中的十六进制颜色值获取 OpenCV HSV 值?

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:40 30 4
gpt4 key购买 nike

我想在 OpenCV 中检测白色/灰色对象,因此我需要将 #B4BAB8 转换为 OpenCV HSV 值。我尝试了很多东西,但我不知道如何计算这种颜色的上下限。#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);

enter image description here

最佳答案

我在 OpenCV 中处理颜色空间时遇到了这个问题。正如@Andrey Smorodov 在评论中提到的那样,#b4bab8 值是一个十六进制,可以在任何颜色空间中进行解释。如果你有你提到的 180,186,184 的 RGB 值,请遵循 this OpenCV 在使用 Imgproc.cvtcolor() 时使用的转换。转换与 this 上的不同因此这适用于 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)。您可以简单地使用您想要的任何类型的颜色 ​​(180,186,184) 制作一个空的“RGB”图像,然后使用 cvtcolor 更改 BGR2HSV(注意:OpenCV 将所有 RGB 图像加载为 BGR)并检查 HSV 颜色空间中的值是什么。如果有帮助,请告诉我!

关于c++ - 如何从 C++ 中的十六进制颜色值获取 OpenCV HSV 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41016364/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com