将8位二进制向量转换为1灰度像素

时间:2017-12-18 14:09:57

标签: python image-processing scipy

我有大小为8的二进制向量,即8位向量1和0.如何在python中将8位向量转换为1位灰度像素?

1 个答案:

答案 0 :(得分:3)

v = numpy.array([1,0,1,0,1,0,1,0])
g = numpy.sum(2**numpy.arange(8)*v)

对于每一位,我们通过取2 ^ 0,2 ^ 1等来确定其权重。然后我们将权重向量的乘积与我们的位向量相乘,并对这些值求和。

这假设第一位是最不重要的位,通过反转它可能反过来的范围:

g = numpy.sum(2**numpy.arange(7,-1,-1)*v)

这两个都为您提供0-255范围内的灰度值。如果您想将此值设为1位,则可以将其设为阈值:

g = 1 if (numpy.sum(2**numpy.arange(7,-1,-1)*v) > 127) else 0