【发布时间】:2017-06-27 20:48:33
【问题描述】:
我想测量图像的平均像素强度和色彩度。为此,我正在遵循这种方法(如果有任何替代方法,请告诉我):
a) 计算平均像素强度:
im = Image.open('images-16.jpeg')
stat = ImageStat.Stat(im)
r,g,b = stat.mean
mean = sqrt(0.241* (r ** 2) + 0.691* (g ** 2) + 0.068* (b ** 2))
print(mean)
b) 测量色彩:
-
将颜色空间划分为 64 个立方块,每个维度有四个相等的分区
w,h=im.size bw,bh = 8, 8 #block size img = np.array(im) sz = img.itemsize shape = (h-bh+1, w-bw+1, bh, bw) strides = (w*sz, sz, w*sz, sz) blocks = np.lib.stride_tricks.as_strided(img, shape=shape, strides=strides) print (blocks[1,1]) 计算每个立方体的几何中心 Ci 之间的欧几里得距离 i
Not able to compute (say d(a,b)=rgb(Ca)-rgb(Cb))-
Distribution D1 生成为假设图像的颜色分布,使得对于 64 个样本点中的每一个,频率为 1/64 -
pixels = im.load() all_pixels = [] for x in range(218): #put your block width size for y in range(218): #your block heigh size cpixel = pixels[x, y] all_pixels.append(cpixel) 分布 D2 是通过在 64 个立方体
How can i do this?- 计算
Earth Mover's Distance: (D1,D2,d(a,b))- d(a,b) 在上面计算
这是正确的做法吗?任何支持文件来实现这一目标?感谢您对代码的任何帮助。谢谢。
【问题讨论】:
-
首先,我会将 r,g,b 组合成每个像素的亮度之前计算平均值。使用
**2.2和**(1/2.2)的正确伽玛值代替**2和sqrt。请务必先将这些像素值除以 255。 -
@MarkRansom 好的,肯定会尝试的......并用于测量色彩?
-
对不起,如果我有关于色彩的建议,我会留下一个正确的答案。
-
@MarkRansom np,提建议
标签: python image image-processing euclidean-distance