登录 立即注册
查看: 19280|回复: 2

[源码分享] 用python实现比色功能

[复制链接]

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2020-4-28 16:08:14 | 显示全部楼层 |阅读模式
本帖最后由 老清洁工 于 2020-4-28 16:09 编辑

python做脚本是很方便的,和模拟器配合简直是绝了。
下面是我写的比色代码,各位觉得如何?在此基础上,要实现找色也是很不错的,请期待我的下一篇文章。

  1. # 由于我们习惯性的这样写颜色值,所以写个函数专门转换一下
  2. # 0xRRGGBB
  3. def color2array(c):
  4.     r = (c & 0xFF0000) >> 16
  5.     g = (c & 0x00FF00) >> 8
  6.     b = (c & 0x0000FF)
  7.     return b, g, r  # opencv读入内存的格式是BGR,所以倒着返回


  8. # 单个点对比,比色和找色都会用到
  9. def color_cmp(image, x, y, b1, g1, r1, sim):
  10.     b2 = image.item(y, x, 0)
  11.     g2 = image.item(y, x, 1)
  12.     r2 = image.item(y, x, 2)
  13.     sim = (1 - sim) * 255
  14.     return abs(b2 - b1) < sim and abs(g2 - g1) < sim and abs(r2 - r1) < sim


  15. # 多点比色
  16. def mcc(image, color_list, sim=0.9):
  17.     if len(color_list) == 0:
  18.         return False
  19.     for c in color_list:
  20.         b1, g1, r1 = color2array(c[2])
  21.         if not color_cmp(image, c[0], c[1], b1, g1, r1, sim):
  22.             return -1, -1
  23.     return color_list[0][0], color_list[0][1]
复制代码


打个小广告:
作者公众号:老清洁工
二维码:
二维码: qrcode_for_gh_e101b4b9bbce_1280.jpg
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2020-4-29 10:26:43 | 显示全部楼层
看来一楼还是要自己占了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-1-5 20:54:10 | 显示全部楼层
2楼,楼主666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|模拟器|手机模拟器|手游模拟器|安卓模拟器|( 沪ICP备14046591号 )

GMT+8, 2024-5-3 10:10 , Processed in 0.027094 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表