因此,我得到了这堆图像(大约1000张),并且我使用了CV2和Python查找每个图像中的主要颜色。由于它是OpenCV,因此我可以使用多种格式(RGB,HSV等)获得该颜色。
我要找出的(不是计算机视觉或数学天才)是,是否有一种方法可以将主要颜色存储为某种单一值-用于搜索和排序。
我知道有一个公式可以使用HSV来计算一种颜色与另一种颜色之间的“距离”,但这实际上是一个愚蠢的小程序,需要大量的数学运算。
是否存在任何单一价值?还是“只是那样行不通”?
谢谢。
答案 0 :(得分:1)
使用OpenCV和其他图像软件描述颜色的方式与人类解释颜色的方式不同。大多数人会认为红色和橙色彼此接近,而红色和蓝色彼此远离。图像软件程序使用强度,渐变和波长来描述颜色。
当人们考虑颜色时,大多数人都在考虑饱和度和值为255的颜色。要查找颜色之间的距离,可以查看其HSV值之间的差异。
这是我用来生成该gif的代码:
import cv2
import numpy as np
h = 0
while True:
img = np.zeros((200,200,3), np.uint8)
img[:,:,:] = h, 255, 255
img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
cv2.imshow('img', img)
k = cv2.waitKey(1)
if k == 27: break
h += 1
if h == 180: h = 0