我有一个使用案例,需要找到实时视频每帧连续的RGB像素颜色计数。在搜索后,我找到了一段代码可以完成相同的功能,但性能方面大约需要3秒才能给出输出。但在我的情况下,我需要尽快进行这个计算,可能是每秒25帧。有人可以帮助我通过重构以下代码来解决这个问题吗?
from PIL import Image
import timeit
starttime = timeit.default_timer()
with Image.open("netflix.png") as image:
color_count = {}
width, height = image.size
print(width,height)
rgb_image = image.convert('RGB')
for x in range(width):
for y in range(height):
rgb = rgb_image.getpixel((x, y))
if rgb in color_count:
color_count[rgb] += 1
else:
color_count[rgb] = 1
print('Pixel Count per Unique Color:')
print('-' * 30)
print(len(color_count.items()))
print("The time difference is :", timeit.default_timer() - starttime)
输出:
每种颜色的像素计数: 130869
时间差为:3.9660612