2017-03-24 15 views
1

私はこのコードを使用して画像の緑色を検出しています。numpyでこのイメージの繰り返しを最適化するにはどうすればよいですか?

この繰り返しは本当に遅いです。

これを高速化するにはどうすればよいですか?それが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 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 

答えて

2

私はこの(未テスト)のようなもののために行くだろう:

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 

コピー操作を実際に省略が、私は元のコードに沿ってもう少し滞在し、それを保つことができます。

ここで、プログラミングの質問は実際にはここでは一般的であり、StackOverflowにはより適していることに注意してください。

関連する問題