python - 使用opencv按顺序检测图像中的颜色
问题描述
我正在做一个项目,我需要从图像中按顺序识别颜色
我是openCv的新手。需要帮助。图片在这里
解决方案
你可以试试这个(你的图像被保存到color_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 或任何特定顺序,您可以重新排序它们。
推荐阅读
- sublimetext3 - 是否可以使用 Cx Cs 保存在 Sublime Text 3 中
- javascript - 如何修复js中的“窗口未定义错误”
- git - Git 显示我添加了另一个人的更改
- sql - 使用 JOB_TITLE 和 EVENT_DATE 查找上次换工作的日期
- c - C中的每个指针都应该分配在堆上吗?
- c - 如何使用 llvm-c API 使用内联汇编
- flutter - 如何用另一个 GestureDetector 包装 GestureDetector 并在任何地方获取事件
- laravel - laravel 雄辩的嵌套关系计数
- node.js - typescript 在 checkAuth 中间件之后更改请求的类型
- javascript - 我在 HTML 中制作的可播放结构很平淡,通用属性没有帮助