gpt4 book ai didi

c++ - 从 HSV 直方图中获取主色值

转载 作者:行者123 更新时间:2023-11-28 07:13:44 24 4
gpt4 key购买 nike

我正在从如下图像创建一个 hsv 直方图。

- (void)processImageWithHsv:(Mat&)image;
{
Mat image_hsv;

cvtColor(image, image_hsv, CV_BGR2HSV);

int hbins = 50, sbins = 60;
int histSize[] = {hbins, sbins};

float hranges[] = { 0, 360 };
float sranges[] = { 0, 256 };

const float* ranges[] = { hranges, sranges };
MatND hist;

int channels[] = {0, 1};

calcHist( &image_hsv, 1, channels, Mat(), // do not use mask
hist, 2, histSize, ranges,
true, // the histogram is uniform
false );

double maxVal = 0;
minMaxLoc(hist, 0, &maxVal, 0, 0);

// ???: HOW Convert this information to colour value

}

但是我不知道如何从那个hist 中获得最主要的颜色值?我应该使用 maxVal 吗?

最佳答案

你犯了一些错误:

  1. 您正在寻找主色 value 但您告诉 calcHist 使用色调和饱和度。你应该换 channel 。
  2. 您的范围是错误的:它应该是 180。
  3. dims 应该是 1(不是 2),因为您只需要 value 直方图。

在那些修正之后 maxVal 应该包含最经常出现的 value 值。

关于c++ - 从 HSV 直方图中获取主色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20567643/

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