Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将8位二进制向量转换为1个灰度像素_Python_Image Processing_Scipy - Fatal编程技术网

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

Python 将8位二进制向量转换为1个灰度像素,python,image-processing,scipy,Python,Image Processing,Scipy,我有大小为8的二进制向量,即8位向量为1和0。如何在python中将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) 这两个选项都会为您提供

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

它是一个numpy向量吗?是的,它是一个numpy向量。我有向量[0.0.0.1.0.1.0.],当我设置阈值>127时,它显示为false。这意味着什么,因为我无法理解输出。True==1和False==0,我已经更新了示例,以实际显示0和1so。在这种情况下,它将永远不会>127,因为所有位都是0和1。所以输出总是错误的。这是否意味着我将无法创建灰度像素?当然可以。只需举前两个例子中的一个,它会给你一个介于0-255之间的答案。如果希望它在0-1之间,只需将它除以255即可。在我的例子中,每次数组的最大值为0,小于1,例如[0,0,0,1,1,0,0,0]。所以它永远不会超过127。那我该怎么办?