如何生成RGB直方图的opencv
How to generate an RGB Histogram by opencv
我想做一个从图像到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代码这里的方法是首先分割三个通道,然后计算每个通道的直方图。
3D直方图,参考以下答案:
如何使用OpenCV在c++中访问3D直方图值?
相关文章:
- 如何在OpenCV 3.4.7中计算CV_32FC1 cv::GpuMat图像的(范围)直方图
- 使用 OpenCV 原始指针和 lambda 作为直方图的不同结果
- OPENCV MAT问题:直方图和此循环之间的差异
- 在OPENCV中归一化函数中的直方图
- 从直方图OPENCV中的峰中获取色调值
- 使用 2D 数据创建 3D 直方图(OpenCV?
- RGB颜色图像直方图使用OpenCV C 进行对比度拉伸
- 如何使用每 n 个像素 OpenCV 计算直方图
- 尝试在没有opencv calcHist()的情况下计算我自己的直方图
- 使用OpenCV的c++中图像的绿色分量的直方图
- 无法在 OpenCV 中获取直方图图像
- Opencv:如何计算 3D 直方图
- 使用彩色直方图使用 OpenCV 训练 SVM
- OpenCV 项目在将直方图应用于黑色图像时崩溃
- OpenCV加载/保存直方图数据
- 如何在OpenCV上创建用于制作直方图的Mat
- 如何在OpenCV中计算矩阵的直方图
- 在OpenCV直方图中可能的箱的最大数量是多少?
- 从像素补丁OpenCV中获取方向直方图
- 匹配OpenCV中相似直方图的相应峰/谷