我一开始就把这个拿走了:这可能是一个非常愚蠢的问题,也可能属于不同的SE,所以请随时告诉我这是不是情况下。
我有一堆图像,它们是灰度和绿色通道的合并。有些图像比其他图像暗得多,而其余图像则大致相同。
我想要同质化'尽可能最好的图像集的亮度(它不是必须完美)。
有没有人知道是否有一种相当简单的方法可以做到这一点?
这就是我目前正在考虑使用ImageMagick(一些bash
伪代码和实际代码,因为我在OSX上使用CLI imagemagick,但其他解决方案没关系):
阅读我的一组参考图片'亮度/灰度级别我可以使用并获得平均灰度级:
greyvals = ()
for file in an_array_of_image_files ; do
# get array of grey values
greyval=$(convert $file -colorspace Gray -format "%[mean]" info:)
greyvals+=$greyval
# average the greyvals of the reference set through some mean function.
这是我的问题所在。有没有办法使图像变亮或变暗到指定的灰度级?
ImageMagick提供modulate
功能,但到目前为止我发现的示例需要一个百分比“亮白/变暗”,例如:
convert $file -modulate 200% ${file%.*}_bright.png
我是否完全吠叫了错误的树?
修改
一些示例图片:
参考足够明亮'图像:
一个例子' dark'图像:
答案 0 :(得分:2)
使用ImageMagick 7我会考虑这种方法......
adjuster=`convert input.png -format %[fx:50-(mean*100)] info:`
这将调整每个输入图像,使整体平均亮度为50%。使用IM6,您可以使用类似这样的命令将所需的值转换为变量...
convert input.png -brightness-contrast $adjuster output.png
然后在上面的IM7示例中使用该变量作为“-brightness-contrast”运算符的参数,类似这样......
{{1}}
我没有从* nix命令行测试过这个,但这个概念应该可行。
答案 1 :(得分:1)
使用我的ImageMagick脚本,histmatch和matchimage,这里有一些结果使用你的两个图像。 ImageMagick 6.9.9.43 Q16和Mac OSX Sierra。
histmatch -c rgb reference.jpg dark.png dark_histmatch_rgb.png
histmatch -c gray reference.jpg dark.png dark_histmatch_gray.png
matchimage -c hsi dark.png reference.jpg dark_matchimage_hsi.png
matchimage -c ycbcr dark.png reference.jpg dark_matchimage_ycbcr.png