如何使用每 n 个像素 OpenCV 计算直方图
how to calculate histogram using every nth pixel opencv
我正在使用这个opencv函数来计算直方图(对于蓝色)。
calcHist( &bgr_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate );
在这里,我们使用图像中的所有像素来计算直方图。假设我需要使用每 10 个像素或第 100 个像素计算直方图。有没有有效的方法可以做到这一点?我需要这样做,因为我认为即使丢失了一些细节,它也可以提高直方图计算的性能。
任何帮助,不胜感激。
计算时间与像素数成线性关系。 您基本上将每个像素取一次并将其放入垃圾箱中。 提前对它们进行任何转换都会导致浪费时间。
因此,做一些事情,比如调整大小或创建新图像,会破坏目的。
实现任何节省的最佳方法是使用您自己的直方图计算函数,该函数只是在迭代像素时将索引增加(10、100 或 1000)。 直方图算法很容易重写。 这是本科生典型的家庭作业问题。
我认为在少数情况下,值得尝试通过用更少的像素制作直方图来节省时间。 您必须使用非常紧迫的时间限制或非常大的数据。
使用带有
最近邻"插值"的cv::resize()
沿两个轴每 10 个像素对图像进行子采样。然后计算子采样图像上的直方图。
除了使用额外的 1% 内存(超出图像)之外,它还应该与动态计算直方图一样有效。
相关文章:
- OpenCV C++.快速计算混淆矩阵
- 如何使用opencv计算视频的fps(带处理)
- OpenCV 计算相机位置和旋转
- 用OpenCV计算到红点的距离
- 如何使用每 n 个像素 OpenCV 计算直方图
- 使用 Opencv 计算 haar 特征
- 使用OpenCV计算对象的面积
- 如何使用OpenCV计算两帧之间的旋转平移矩阵
- opencv计算矩阵秩
- 为什么用Eigen和OpenCV计算的SVD左奇异向量具有不同的符号
- 使用 OpenCV 计算协方差矩阵
- 使用OpenCV计算黑色像素
- 使用基本矩阵通过 OpenCV 计算坐标平移
- OpenCV - 计算图像的边缘强度
- Python和C++使用OpenCV计算基本矩阵的结果不同
- 如何使用opencv计算头部姿势
- 如何使用opencv计算人脸识别的百分比格式预测置信度
- cv::PCA (openCV)计算数据本身的协方差矩阵?或者我们应该传递协方差矩阵给它
- 如何使用Chrono和OpenCV计算实时视频流的FPS
- 用opencv计算光流