【问题标题】:How to optimize this image iteration in numpy? [duplicate]如何在 numpy 中优化此图像迭代? [复制]
【发布时间】:2017-03-24 04:41:37
【问题描述】:

我正在使用此代码来检测图像中的绿色。

问题是这个迭代真的很慢。

如何让它更快?如果是使用 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

【问题讨论】:

    标签: image-processing python opencv


    【解决方案1】:

    我会选择这样的东西(未经测试):

    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。

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 2017-09-19
      相关资源
      最近更新 更多