Python 如何计算表示谓词';在'ndarray'的每个元素上的结果是什么?

Python 如何计算表示谓词';在'ndarray'的每个元素上的结果是什么?,python,opencv,numpy,image-processing,bitvector,Python,Opencv,Numpy,Image Processing,Bitvector,我有一个RGB图像作为一个ndarray,我想计算它的一个紧凑的抽象,作为一个位向量,其中每个元素指示像素是否接近白色。(不需要对该位向量进行dipslay) 我看了参考资料,找出了一些函数。但到目前为止,我只找到了一种简单的方法,可以得到布尔值的ndarray(这比我的意图要多8倍)。 有没有一种直接有效的方法来实现我的目标 到目前为止,我所拥有的: 将numpy导入为np 进口cv2 #大于'128'的灰色为黑色,否则为白色 gray2bw=np.矢量化(λn:n

我有一个RGB图像作为一个
ndarray
,我想计算它的一个紧凑的抽象,作为一个位向量,其中每个元素指示像素是否接近白色。(不需要对该位向量进行dipslay)

我看了参考资料,找出了一些函数。但到目前为止,我只找到了一种简单的方法,可以得到布尔值的
ndarray
(这比我的意图要多8倍)。 有没有一种直接有效的方法来实现我的目标

到目前为止,我所拥有的:

将numpy导入为np
进口cv2
#大于'128'的灰色为黑色,否则为白色
gray2bw=np.矢量化(λn:n<128)
#将RGB图像抽象为黑色/白色
def rgb2bw(图像_rgb):
返回灰度2Bw(cv2.CVT颜色(图像\u rgb,cv2.COLOR\u BGR2GRAY))

你应该知道你的
gray2bw
效率很低。只需直接在数组上使用
array
,它就会被矢量化。我不知道。谢谢@juanpa.arrivillaga!——我想你应该对结果做
packbits
。然而,根据您的用例,这种表示的不切实际性很可能会超过内存节省。