image-processing - 如何确定图像是否饱和?

标签 image-processing

我正在尝试为图像实现自动饱和度工具,我正在尝试计算图像的全局饱和度并确定图像需要多少饱和度提升。如何计算全局饱和度?

最佳答案

要回答这个问题,如果您只关心饱和度提升,这是最简单的算法:

  1. 找到图像中具有最大饱和度的像素。
  2. 确定在饱和度变为 100% 和剪辑之前可以将饱和度缩放多少。 (这是在开始丢失数据之前可以提高饱和度的最大值)
  3. 应用小于您刚刚确定的量的饱和度缩放量。

如果图像不是过度饱和也不是饱和度不足,则图像可能饱和度很好...... 想象一下一朵红玫瑰的特写镜头。如果它完全饱和,整个图像就会变成红色。因此,过度饱和的图像可能有很高比例的像素具有相同或非常接近的颜色。如果我们的红玫瑰特写镜头饱和度不足,它可能不包含任何 100% 红色的像素,并且看起来是粉红色而不是红色。因此,如果图像没有接近完全饱和度的像素,则它可能处于饱和状态。

其他一些需要考虑的事情:

请注意,饱和度可能具有感知方面... 黑色背景上的红色方 block 可能比白色背景上的红色方 block 显得更饱和。

您可能需要多次通过。将图像分解为主题和背景,并分别应用饱和度功能。

过多的饱和度会使事物看起来单调。饱和度太低会使事物看起来死气沉沉。

此外,图像可能已经太饱和了……在这种情况下,降低背景的饱和度,拍摄对象会显得更饱和。

就饱和度函数而言,请尝试转换为 HSL 色彩空间;您可以缩放 S 分量以调整饱和度;如果那是您的原始色彩空间,则不要转换回 RGB。从颜色数据构建直方图。您会看到许多图像共享相似的直方图。根据直方图场景,您可以选择合适的饱和度比例因子。

关于image-processing - 如何确定图像是否饱和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709121/

相关文章:

visual-c++ - 如何比较 OpenCV 中的霍夫线位置?

image - 如何将图像添加到 PDF 的所有页面?

python - 图像噪声处理和边缘方向确定

c# - KOFAX 位图文件 : How can I open them?

SiFT的Opencv特征向量大小

image - 使用 OpenCV 2 进行背景减除

matlab - 如何关闭指定的 MATLAB 图像

image - 为什么我得到一个空白图像作为我的输出?

python - 高斯滤波器后合并接近的对象

c++ - MATLAB vs C++ vs OpenCV - imresize