2017-12-18 308 views

回答

2
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 
+0

我有向量[0.0.1.0.1.0.0],并且当我设置阈值> 127时它显示错误。这是什么意思,因为我无法理解输出。 –

+0

真== 1和假== 0,我已经更新了示例,实际显示0和1 – Lanting

+0

,所以在这种情况下,它将永远不会> 127,因为所有位都是0和1.所以输出将始终为假。这是否意味着我无法创建灰度像素? –