我将一张图片加载到 numpy 数组中,需要将其图片设置为 2 个不同的阈值。
import numpy as np
import cv2
cap = cv2.Videocapture(0)
_,pic = cap.read()
pic1 = pic
pic2 = pic
pic1[pic1 > 100] = 255
pic2[pic2 > 200] = 255
当我只想修改 pic1 和 pic2 时,此代码将始终编辑 pic
在Python中,对象和变量是有区别的。变量是分配给对象的名称;并且一个对象在内存中可以有多个名称。
通过做pic1 = pic; pic2 = pic
,您正在分配same对象具有多个不同的变量名称,因此最终会修改同一个对象。
你想要的是使用创建副本np.ndarray.copy
—
pic1 = pic.copy()
pic2 = pic.copy()
或者,非常类似,使用np.copy
—
pic1, pic2 = map(np.copy, (pic, pic))
这个语法实际上使得它really易于克隆pic
任意多次:
pic1, pic2, ... picN = map(np.copy, [pic] * N)
Where N
是您要创建的副本数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)