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

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

回答:

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 

以上是 将8位二进制向量转换为1灰度像素 的全部内容, 来源链接: utcz.com/qa/264001.html

回到顶部