2

此代码片段是基于 HSV 色调范围(此处为 180-250)将 opencv 图像中的像素变为黑色的程序的一部分。有人碰巧明白为什么下面的代码会引发错误异常。AttributeError:'tuple' object has no attribute all在最后一行?'image' 是一个 numpy.ndarray (使用 np.asarray(image[:,:]) 从 opencv cvMat 获得)

image=np.asarray(image[:,:])
hue=np.resize(image,(480,640,1))
hue[hue < 180]=0
hue[hue > 250]=0
hue2=np.resize(hue,(480,640,3))
image[np.where(hue2==[0,0,0]).all(axis=2)]=[0,0,0]

虽然代码

image=np.asarray(image[:,:])
image[np.where((np.not_equal(image,[0,0,0])).all(axis=2))]=[0,0,0]

完美地工作,因为'hue2'和'image'是两个完全相同尺寸的numpy数组?

4

1 回答 1

2

它看起来像错位的牙套。它应该是

image[np.where((hue2==[0,0,0]).all(axis=2))]=[0,0,0]
于 2013-06-02T06:08:24.920 回答