Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用opencv按顺序检测图像中的颜色_Python_Opencv_Color Detection - Fatal编程技术网

Python 使用opencv按顺序检测图像中的颜色

Python 使用opencv按顺序检测图像中的颜色,python,opencv,color-detection,Python,Opencv,Color Detection,我正在做一个项目,我需要从图像中按顺序识别颜色 我是openCv的新手。需要帮助。图像在这里 因为我认为你必须识别方块内部的颜色,而不是图像中的所有颜色,所以你首先应该检测所有方块 在这之后,每个方块的颜色都很容易识别,因为你可以在不同的颜色空间(rgb、hsv等)中获得像素值信息 我建议您在开始之前阅读官方文档中的内容,它们非常有用。您可以尝试一下(您的图像保存到color\u strip.jpg),基本上您加载文件并将图像剪切成相同颜色的片段,然后对片段进行平均以获得平均颜色: >&g

我正在做一个项目,我需要从图像中按顺序识别颜色

我是openCv的新手。需要帮助。图像在这里


因为我认为你必须识别方块内部的颜色,而不是图像中的所有颜色,所以你首先应该检测所有方块

在这之后,每个方块的颜色都很容易识别,因为你可以在不同的颜色空间(rgb、hsv等)中获得像素值信息

我建议您在开始之前阅读官方文档中的内容,它们非常有用。

您可以尝试一下(您的图像保存到
color\u strip.jpg
),基本上您加载文件并将图像剪切成相同颜色的片段,然后对片段进行平均以获得平均颜色:

>>> import cv2
>>> img = cv2.imread( 'color_strip.jpg' )
>>> img.shape
(3677, 235, 3)
>>> square_size = 2640 / 10
>>> for i in range(11) :
...     top = i * square_size + 10
...     bottom = top + 160
...     data = img[top:bottom,80:210,:]
...     _ = cv2.imwrite( 'data_%02d.jpg' % i, data )
...     print 'mean color', data.mean(axis=0).mean(axis=0)
... 
mean color [  92.55783654  127.716875    143.74230769]
mean color [  95.17754808  126.11514423  157.42605769]
mean color [  84.09365385  151.56105769  190.28004808]
mean color [  83.29528846  148.21403846  165.08956731]
mean color [  50.76451923  140.88158654  211.09413462]
mean color [  19.91221154  150.03350962  221.26485577]
mean color [  41.71350962  150.38677885  200.61456731]
mean color [ 114.19682692  155.68245192  190.50230769]
mean color [ 106.44120192  160.234375    194.67211538]
mean color [ 106.43980769  148.12759615  102.86701923]
mean color [ 117.02735577  151.62211538  171.19259615]
>>> 
您可以检查
data_XX.jpg
文件,以确保它们实际上包含彩色条纹,而不是其他内容


一个小细节,打印的结果是OpenCV使用的BGR格式,如果您需要RGB或任何特定订单,您可以对其重新排序。

您好,谢谢您的解决方案。实际上,我不需要任何颜色的平均值,我在寻找图像中的颜色,输出应该是图像中每种颜色的rgb值,并且应该是从上到下的bottom@MaheshReddy当你说你不需要平均值时,你是否理解颜色方块的颜色不一致,取决于你在哪个点采样颜色,你会得到不同的结果??对该区域采取平均值是缓解该问题的方法之一。