Python打开Cv。类型错误:';非类型';对象不可下标
我正在做图像处理,我想从图像中删除一些部分,并用另一个背景图像替换我定义的补丁,它等于背景图像。请帮帮我Python打开Cv。类型错误:';非类型';对象不可下标,python,python-3.x,numpy,image-processing,opencv3.0,Python,Python 3.x,Numpy,Image Processing,Opencv3.0,我正在做图像处理,我想从图像中删除一些部分,并用另一个背景图像替换我定义的补丁,它等于背景图像。请帮帮我 def replace(self, patch, show_it=True): mask = self._buildMask(self.image) mask = cv2.cvtColor(mask.astype(np.uint8), cv2.COLOR_GRAY2BGR) self.image[mask !=0 ]= patch[mask !=0] #pri
def replace(self, patch, show_it=True):
mask = self._buildMask(self.image)
mask = cv2.cvtColor(mask.astype(np.uint8), cv2.COLOR_GRAY2BGR)
self.image[mask !=0 ]= patch[mask !=0]
#print(mask.dtype)
#self.image[mask != 0] = patch[mask != 0]
我犯了这样的错误
self.image[mask !=[0] ]= patch[mask !=[0]]
TypeError: 'NoneType' object is not subscriptable
谢谢你要么
self.image[mask!=0]
要么patch[mask!=0]
have valueNone
。在执行self.image[mask!=0]=patch[mask!=0]
之前,您可以添加一个if语句,检查它们的值是否为none。对不起,请您澄清一下@FBSOBeforeself.image[mask!=0]=补丁[mask!=0]
add:if self.image[mask!=0]=无:
好的,我得到了这个如果self.image[mask!=0]!=None:ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()
@fbso只需使用print()
查看变量中的值-print(self.images)
print(patch)
print(mask)
,它应该会显示哪个变量有值None