我试图计算整个图像上的一种颜色的平均值,以确定颜色,饱和度或暗淡度或其他描述此颜色的值的方式视频的frmaes之间的变化。 但是,我想只得到一个值来描述整个框架(以及单色,在其中选择的颜色)。计算帧中颜色的简单平均值使得视频帧之间的差异非常小,在0..255的空间上只有2-3个。确定一种颜色“图像中单个颜色的多少”
是否有任何其他方法来确定直方图以外的图像的颜色,据我所知,会给我多个值描述单帧。
我试图计算整个图像上的一种颜色的平均值,以确定颜色,饱和度或暗淡度或其他描述此颜色的值的方式视频的frmaes之间的变化。 但是,我想只得到一个值来描述整个框架(以及单色,在其中选择的颜色)。计算帧中颜色的简单平均值使得视频帧之间的差异非常小,在0..255的空间上只有2-3个。确定一种颜色“图像中单个颜色的多少”
是否有任何其他方法来确定直方图以外的图像的颜色,据我所知,会给我多个值描述单帧。
最糟糕的情况,你可以遍历图像中的所有像素并进行计数。不知道你用什么编程方式,但我使用Python与Numpy类似的东西。 pb是一个gtk pixbuf,里面有我的图片。
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
你使用哪个库进行图像处理?如果是OpenCV(或者Matlab),那么这里的步骤将非常简单。否则,你需要环顾四周并尝试一下。
以中间值作为单一颜色来描述您的框架 - 颜色以框架中最大的量出现。
这里的关键是如果上述步骤对于实时视频足够快。你必须尝试找出我的猜测。
您是否试图从每个帧中提取单一颜色,然后使用该颜色区分帧? – misha