gpt4 book ai didi

python - 如何通过opencv生成RGB直方图

转载 作者:行者123 更新时间:2023-11-28 06:13:45 26 4
gpt4 key购买 nike

我想在 RGB 颜色空间中从图像提取特征到 3D 直方图。我有以下 python 代码,我想在 C++ 下执行它:

hist = cv2.calcHist([image], [0, 1, 2], None, self.bins, [0, 256, 0, 256, 0, 256])        
hist = cv2.normalize(hist)
return hist.flatten()

我做了这样的事情:

float range[] = { 0, 255 } ;   
const float* histRange = { range };
int channels[] = {0};
cv::calcHist( &image, 1, channels, cv::Mat(), r_hist, 1, &sizeVector[0], &histRange);
channels[0] = 1;
cv::calcHist( &image, 1, channels, cv::Mat(), g_hist, 1, &sizeVector[0], &histRange);
channels[0] = 2;
cv::calcHist( &image, 1, channels, cv::Mat(), b_hist, 1, &sizeVector[0], &histRange);

但后来我发现它们不一样,因为在 python 中直方图是基于 3D 计数的,如何将代码转换为 c++?

最佳答案

这是来自 OpenCv 文档的代码示例:

http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html#code

这里的做法是先拆分三个 channel ,然后计算每个 channel 的直方图。

对于 3D 直方图,请引用这个答案:

How to access 3D Histogram values in C++ using OpenCV?

关于python - 如何通过opencv生成RGB直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721538/

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