c++ - 如何找到该图像或多或少是均匀的 w.r.t 颜色(色调)?

标签 c++ opencv

更新:

我已将图像分割成不同的区域。对于每个区域,我需要知道它在颜色方面是否更均匀。

这样做的可能策略是什么?

上一个: 我想检查图像的颜色方差(最好是色调方差)以找出由均匀颜色组成的图像(即只有一种或两种颜色的图像)。

我知道一种策略可能是为此创建一个色相直方图,然后我可以找到每种颜色的数量,但我总共有几张图像,我无法为每张图像创建 180 个 bin 的色相直方图,因为那时整个代码的计算成本很高。

是否有任何内置的 openCV 方法或其他更简单的方法来确定图像是仅由均匀颜色组成还是由多种颜色组成?

可以计算色相图像方差的东西也可以。我找不到像 variance(image);

这样的东西

PS:我正在用 C++ 编写代码。

最佳答案

可以在没有直方图的情况下计算方差,因为平均平方值减去平均值的平方。它使用两个累加器对图像进行单次传递。选择不会溢出的数据类型。

关于c++ - 如何找到该图像或多或少是均匀的 w.r.t 颜色(色调)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768595/

相关文章:

c++ - 多重集 lower_bound 迭代器的位置

python - OpenCV 找到彩色圆圈和位置值 Python

c++ - 使用 OpenCV 进行相机校准

opencv - 构建opencv时,找不到文件 "cv2.so"

iphone - 面部护理 - 去除/改变发型

c++ - 当给定位的点是三角形的顶点之一时,OpenCV 的 Subdiv2D/Delaunay 是否损坏?

c++ - 计时器取决于大写锁定

c++ - 向 C 风格可变参数列表添加额外参数

c++ - 未处理的强制展开导致中止

c++ - aam-opencv 编译因 OpenCVConfig.cmake 失败