python 处理图片太慢了怎么办?

本人刚接触python,想做图片的处理:对一张RGB图像进行处理,判断每个点如果R<150或者G<150或者B<150则把这个点变为【0,0,0】。但是对于一章4000*6000的照片来说要运行两分多钟,请问有没有大神可以为我指点迷津,采用什么方法能把速度缩短到一秒以内。

img = cv2.imread("./IMG_4314.jpg");
for i in range(len(img)):
    for ii in range(len(img[i])):
        if img[i][ii][0]<yu or img[i][ii][1]<yu or img[i][ii][2]<yu:
            img[i][ii]=np.array([0,0,0])
cv2.imwrite('./white4981.jpg',img,[int(cv2.IMWRITE_JPEG_QUALITY),70])

图片说明

注:不要c++的方法,就想用python

不知道行不行

from PIL import Image

img = Image.open('E:\\Administrator\\Desktop\\微信图片_20181217104229.jpg')

pix = img.load()
width = img.size[0]
height = img.size[1]
for x in range(width):
    for y in range(height):
        r, g, b = pix[x, y]
        #print(r, g, b)
        if(r<150 or g < 150 or b<150):
            pix[x, y] = 0             
img.show()

1 秒以内怕是强人所难了,39.7 秒可还行?

import cv2
import time

if __name__ == "__main__":
    earth = cv2.imread('1561704219_706771.jpg')
    start_time = time.time()
    compared = earth < 150
    print(compared.shape)
    for index_1, result_1 in enumerate(compared):
        for index_2, result_2 in enumerate(result_1):
            if result_2.any():
                earth[index_1, index_2] = [0, 0, 0]
    cost_time = time.time() - start_time
    print("cost {} s".format(cost_time))
    cv2.imwrite('767515.jpg', earth)

运行截图:

图片说明

得到的结果图:

图片说明

调用Opencv库,这样应该能行:
cv2.inRange(image,np.array([150;150;150]),np.array([255;255;255]))