我有一个用例,我必须在搜索后找到每帧实时视频的连续 rgb 像素颜色计数,我找到了一段代码,它做同样的事情,但在性能方面,它需要大约 3 秒才能给我输出,但在我的情况是,我必须尽可能快地进行此计算,可能是 1 秒内 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
