使用所提到的技术,我想出了几个不同的版本.
每个方法返回一个值,但与其他方法不完全相同.此外,除了最后一个方法之外,所有方法都运行大约相同的速度,这取决于图像大小慢得多.
>将图像隐藏为灰度,返回平均像素亮度.
def brightness( im_file ):
im = Image.open(im_file).convert('L')
stat = ImageStat.Stat(im)
return stat.mean[0]
>将图像隐藏为灰度,返回RMS像素亮度.
def brightness( im_file ):
im = Image.open(im_file).convert('L')
stat = ImageStat.Stat(im)
return stat.rms[0]
>平均像素,然后转换为“感知亮度”.
def brightness( im_file ):
im = Image.open(im_file)
stat = ImageStat.Stat(im)
r,g,b = stat.mean
return math.sqrt(0.241*(r**2) + 0.691*(g**2) + 0.068*(b**2))
>像素的RMS,然后转换为“感知亮度”.
def brightness( im_file ):
im = Image.open(im_file)
stat = ImageStat.Stat(im)
r,g,b = stat.rms
return math.sqrt(0.241*(r**2) + 0.691(