Image processing 如何在numpy中优化此图像迭代?
我用这个代码来检测图像中的绿色 问题是这个迭代非常慢 如何使它更快?如果它正在使用numpy,如何以numpy的方式进行Image processing 如何在numpy中优化此图像迭代?,image-processing,python,opencv,Image Processing,Python,Opencv,我用这个代码来检测图像中的绿色 问题是这个迭代非常慢 如何使它更快?如果它正在使用numpy,如何以numpy的方式进行 def convertGreen(rawimg): width, height, channels = rawimg.shape size = (w, h, channels) = (width, height, 1) processedimg = np.zeros(size, np.uint8) for wimg in range(0,width): for him
def convertGreen(rawimg):
width, height, channels = rawimg.shape
size = (w, h, channels) = (width, height, 1)
processedimg = np.zeros(size, np.uint8)
for wimg in range(0,width):
for himg in range(0,height):
blue = rawimg.item(wimg,himg,0)
green = rawimg.item(wimg,himg,1)
red = rawimg.item(wimg,himg,2)
exg = 2*green-red-blue
if(exg > 50):
processedimg.itemset((wimg,himg,0),exg)
return processedimg
我会选择这样的(未经测试):
def转换器绿色(rawimg):
红色、绿色、蓝色=拉维姆G[:,:,0],拉维姆G[:,:,1],拉维姆G[:,:,2]
exg=2*绿色-红色-蓝色
processedimg=exg.copy();
processedimg[processedimg<50]=0
返回进程
复制操作实际上可以省略,但我将其保留为与原始代码保持更一致
请注意,在一般情况下,编程问题实际上在这里是离题的,更适合StackOverflow
def convertGreen(rawimg):
red, green, blue = rawimg[:,:,0], rawimg[:,:,1], rawimg[:,:,2]
exg = 2*green - red - blue
processedimg = exg.copy();
processedimg[processedimg < 50] = 0
return processedimg