我试图计算整个图像中一种颜色的平均值,以确定颜色、饱和度或强度或其他描述视频帧之间变化的值。然而,我只想得到一个值,它将描述整个框架(并叹息,选择的颜色在它)。计算帧中颜色的简单平均值给出了视频帧之间的非常小的差异,在0..255空间上只有2-3。
除了直方图之外,有没有其他方法来确定图像的颜色,据我所知,直方图将给我一个以上的值来描述单个帧。
发布于 2011-10-27 11:12:45
您使用哪个库进行图像处理?如果是OpenCV (或Matlab),那么这里的步骤将非常简单。否则,你需要环顾四周,进行一些实验。
中存在的像素值的柱状图0...255
这里的关键点是上述步骤对于实时视频是否足够快。我想你得试着找出答案。
发布于 2011-10-26 20:42:29
最坏的情况是,你可以遍历图像中的所有像素并进行计数。不知道你使用的是什么编程,但是我使用Python和Numpy,类似这样的东西。其中pb是一个gtk像素,里面有我的图像。
def pull_color_out(self, pb, *args):
counter = 0
dat = pb.get_pixels_array().copy()
for y in range(0,pb.get_width()):
for x in range(0,pb.get_height()):
p = dat[x][y]
#counts pure red pixels
if p[1] = 255 and p[2] = 0 and p[3] = 0:
counter += 1
return counter除此之外,我通常会使用直方图,并从中获得所需的数据。主要来说,这不会是你最快的选择,特别是对于一个视频,但如果你有时间或只有几帧,那就砍掉:P
https://stackoverflow.com/questions/7902483
复制相似问题