gpt4 book ai didi

c++ - 用于选择颜色的轨迹栏。使用 C++,opencv

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

在我的项目中,用户应该为某些过程选择一种颜色。互联网上有一些应用程序。他们为颜色的 RGB 值创建了三个轨迹条,但我不想那样做。我想在下面创建一个轨迹栏或类似的东西。

如何创建这样的轨迹栏?和

如何获取标记所在颜色的 RGB 值?

enter image description here

最佳答案

OpenCV GUI 功能并不丰富。您可能想使用 Qt或类似的创建一个漂亮的 GUI,并且仍然在 OpenCV 中进行图像处理。

关于 OpenCV 上的轨迹栏,您可能希望使用 HSV(色调、饱和度、值)颜色空间而不是 RGB。固定S=255V=255,你可以通过改变[0, 180]范围内的H来选择颜色。请注意,在 CV_8UC3 图像的 OpenCV 中,HSV 的范围是:

H in [0, 180]
S,V in [0, 255]

以下示例可能会给您一些关于如何使用轨迹栏和 Hue 值的提示:

#include <opencv2/opencv.hpp>
using namespace cv;

Mat3b rgb;
Mat3b hsv;

void on_trackbar(int hue, void*)
{
hsv.setTo(Scalar(hue, 255, 255));
cvtColor(hsv, rgb, COLOR_HSV2BGR);
imshow("HSV", rgb);
}

int main(int argc, char** argv)
{
// Init images
rgb = Mat3b(100, 300, Vec3b(0,0,0));
cvtColor(rgb, hsv, COLOR_BGR2HSV);

/// Initialize values
int sliderValue = 0;

/// Create Windows
namedWindow("HSV", 1);

/// Create Trackbars
createTrackbar("Hue", "HSV", &sliderValue, 180, on_trackbar);

/// Show some stuff
on_trackbar(sliderValue, NULL);

/// Wait until user press some key
waitKey(0);
return 0;
}

关于c++ - 用于选择颜色的轨迹栏。使用 C++,opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329437/

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