【发布时间】:2021-06-09 17:15:13
【问题描述】:
我正在尝试从头开始在 python 中实现更改对比度。但它太慢了,处理一张图像大约需要 30 秒。太多的for循环可能是这个问题,但任何人都可以建议我如何优化的正确方法。对不起,如果这是一个幼稚的问题。但确实需要一些新的视角来处理这个问题。以防有人对因子值感到好奇,它的范围是 -0.5,0,0.5,2。
def ChangeContrast(self,factor):
img= self.img
self.height,self.width = img.shape[:2]
for ch in range(self.channels):
for i in range(self.height):
for j in range(self.width):
img[i][j][ch]= np.clip(factor * (img[i,j][ch] - 128)+ 128,0,255)
return img
谢谢!!
【问题讨论】:
-
如果您仍然使用 numpy,那么您可以使用 numpy 数组操作而不是嵌套循环来更改像素,这应该快几个数量级。
标签: python numpy image-processing