本文共 453 字,大约阅读时间需要 1 分钟。
该问题是很多初学者在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-bt=np.array([10,10,10])print(c)print((cb[i] else b[i]-a[i] for i in range(3)]## 这行代码可以防止出现上满溢的情况。# c=[a[i]+b[i] if a[i]+b[i]<=255 else 255 for i in range(3)]print(c)
转载地址:http://hkcki.baihongyu.com/