我有大小为8的二进制向量,即8位向量1和0.如何在python中将8位向量转换为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