如何优化此代码(python中的双循环)?
我有这个密码:如何优化此代码(python中的双循环)?,python,loops,numpy,opencv,Python,Loops,Numpy,Opencv,我有这个密码: for x in range(len(img)): for y in range(len(img[0])): if img[x][y]==255 : imgblur[x][y]=imggray[x][y] 我在这方面有所改进: i, j = np.where(img == 255) for x in range(i.shape[0]): imgblur[i[x]][j[x]]=imggray[i[x]][j[x]] 有没
for x in range(len(img)):
for y in range(len(img[0])):
if img[x][y]==255 :
imgblur[x][y]=imggray[x][y]
我在这方面有所改进:
i, j = np.where(img == 255)
for x in range(i.shape[0]):
imgblur[i[x]][j[x]]=imggray[i[x]][j[x]]
有没有办法改进更多(更快的循环)?试试np.where()
,上面写着:
如果img==255,则imgblur=imgray
else imgblur=imgblur
nx, ny = 5, 10
img = np.random.randint(255, size=(nx, ny))
imgblur = np.random.uniform(0,1.0,size=(nx, ny))
imggray = np.random.uniform(0,1.0,size=(nx, ny))
imgblur = np.where(img==255,imggray,imgblur)
imgblur
试试看np.where()
,上面写着:
如果img==255,则imgblur=imgray
else imgblur=imgblur
nx, ny = 5, 10
img = np.random.randint(255, size=(nx, ny))
imgblur = np.random.uniform(0,1.0,size=(nx, ny))
imggray = np.random.uniform(0,1.0,size=(nx, ny))
imgblur = np.where(img==255,imggray,imgblur)
imgblur
你可以试试:
imgblur[imggray==255]=255
示例代码:
导入cv2
将numpy作为np导入
img=cv2.imread('imgs/car1.jpg'))
imggray=cv2.cvt颜色(img,cv2.COLOR\u bgr2灰色)
imgblur=np.类零(imggray)
imgblur[imggray>200]=255
cv2.imshow('imggray',imggray)
cv2.imshow('imgblur',imgblur)
cv2.等待键(0)
imggray:imgblur:
您可以试试:
imgblur[imggray==255]=255
示例代码:
导入cv2
将numpy作为np导入
img=cv2.imread('imgs/car1.jpg'))
imggray=cv2.cvt颜色(img,cv2.COLOR\u bgr2灰色)
imgblur=np.类零(imggray)
imgblur[imggray>200]=255
cv2.imshow('imggray',imggray)
cv2.imshow('imgblur',imgblur)
cv2.等待键(0)
imggray:imgblur:
imgblur=np.其中(img==255,imggray,imgblur)
?是的,你明白了imgblur=np.其中(img==255,imggray,imgblur)
?是的,你明白了