【发布时间】:2023-04-08 03:58:01
【问题描述】:
我想计算图像中的绿色百分比
我通过遍历图像中的每个像素并检查每个像素的颜色来计算。最后,我保留绿色像素的数量,并找到整个图像的总百分比。
def green_color_optimized(screenpath):
start_time = time.time()
img = image.load_img(screenpath,target_size=(300,300,3))
x = image.img_to_array(img)
print("Image size: ", x.shape)
count_green = 0
for i in range(0,x.shape[0]):
for j in range(0,x.shape[1]):
pixel = list(map(int, x[i,j].tolist()))
if sum(pixel) != 0:
green_pixel = 100*(pixel[1]/sum(pixel))
blue_pixel = 100*(pixel[2]/sum(pixel))
red_pixel = 100*(pixel[0]/sum(pixel))
if green_pixel > red_pixel and green_pixel > blue_pixel:
if green_pixel > 35:
count_green += 1
green_percent = round(100*(count_green/(x.shape[0]*x.shape[1])),2)
使用此代码,处理每个图像大约需要 200 毫秒;我想处理 100 万张图像。如何优化代码?
【问题讨论】:
标签: python python-3.x image-processing