该问题是很多初学者在jupyter运行像素点计算时会出现的问题。
原因是,我们熟知在opencv的RGB空间,它的图像是三通道的,如果把图像视为x,y坐标,每个点的实际像素表示应该是由每个通道的该点的像素计算出来的。而这每个通道的像素值的范围都是在[0~255]这里注意是不能出现负数或者更大的数的,而且一旦出现负数,比如得到-2这时候opencv内就会将该点转化为253,因此在涉及像素运算时,有如下处理方法。
三目运算符
python的三目运算符在遍历像素点时可以:
a=np.array([1,2,13])
b=np.array([4,5,1])
c=a-b
t=np.array([10,10,10])
print(c)
print((c<t).all())
c&#61;[a[i]-b[i] if a[i]>b[i] else b[i]-a[i] for i in range(3)]
print(c)