java - 标准化图像亮度和饱和度

标签 java imagemagick

我收集了彩色/黑白图像,其中大多数具有不同级别的亮度和饱和度。

How can I normalize those images to make them all at the same "**scale**"?

就我而言,某些图像可能还具有大量白色像素,因为它们是一些旧照片的扫描件。

谢谢

最佳答案

在没有看到图像的情况下很难提出任何非常具体的建议,但一个想法可能是转向基于亮度和饱和度的色彩空间,然后对两个感兴趣的 channel 进行自动 Gamma 校正。

这可能会造成严重困惑,因此请先备份您的图像!

所以,我建议如下:

convert Original.jpg -colorspace HSL -channel B -auto-gamma -colorspace sRGB BrightnessNormalised.jpg

在我移动到“色相、饱和度和亮度”色彩空间时,选择亮度 channel (它是第三个 channel ,因此它是B) > 从 RG&B 中获取)并对 Lightness 进行自动 Gamma 处理,然后保存为经过亮度校正的 sRGB JPEG。

同样,要标准化饱和度,您可以这样做:

convert Original.jpg -colorspace HSL -channel G -auto-gamma -colorspace sRGB SaturationNormalised.jpg

您可以通过使用 -channel GB 一次性执行这两项操作:

convert Original.jpg -colorspace HSL -channel GB -auto-gamma -colorspace sRGB Normalised.jpg

对于灰度图像来说,标准化饱和度可能不是一个好主意,但请进行一些测试。

如果您有喜怒无常、低调的照片或轻快、明亮、高调的照片,那么标准化图像的亮度并不是一个好主意。保留该备份 - 只需制作一个 ZIP/压缩 tar 球并保留它。

关于java - 标准化图像亮度和饱和度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384914/

相关文章:

java - 在初始化时填充 Java 对象数组

imagemagick - 如何从命令行(imagemagick)对图像进行方形和透明填充

command-line - 如何使用 ImageMagick 脚本文件?

ruby - 使用 ImageMagick 删除收据图像边框

c++ - ImageMagick 和 GraphicsMagick 有什么区别?

python - 在不制作文件的情况下使用 Imagemagick?

java - 忽略 isPalindrome() 方法中的字母 - Java

java - 1 - 10000 Java 之间友好数字的递归方法

java - 如何修复我的代码以提供正确的输出而不是不提供任何输出?

java - org.apache.commons.dbcp.DelegatingPreparedStatement 已关闭