网易首页 > 网易号 > 正文 申请入驻

Python制作拾色器!鼠标点击即可获取当前位置的颜色!

0
分享至

  大家好,欢迎来到 Crossin的编程教室 !

  我们做可视化经常会遇到配色问题,如果是在PPT中,只需使用颜色填充的取色器功能,就可以获取指定点的颜色,为自己作品增香添色。

  有人用Python也实现了一个类似的拾色器,今天就来讲一讲具体是怎么做到的!

  颜色值转换

  opencv读取图片的默认像素排列是BGR,具体为什么这么设计,这里就不展开了,感兴趣的小伙伴可以参考这篇文章:https://learnopencv.com/why-does-opencv-use-bgr-color-format/

  而实际上最常见的是RGB颜色,也是Photoshop中默认使用的颜色,也是最常用的一种颜色模式。RGB模式的图像由3个颜色通道组成,分别为红色通道(Red)、绿色通道(Green)和蓝色通道(Blue),这三个通道组合可以产生1670万余种不同的颜色。

  我们其实可以使用opencv自带函数,转换图像的R通道和B通道。

  cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

  另外,还有一些小伙伴更熟悉十六进制颜色码。

  在搜索引擎中,可以轻松找到颜色值在线转换网址。在Python中,则需要根据规则自定义个转换函数。

  def rgb2hex(RGB):
text = '#' + ''.join([hex(i)[-2:].replace('x', '0') for i in list(map(int, RGB))])
return text

  这样就再也不怕颜色值转换了。

  鼠标交互获取颜色

  回到本文最开始,一个拾色器最核心的就是鼠标交互功能。

  # 定义鼠标交互函数

  def get_Color(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
points = rgb2hex(img[y, x])
print(points)
cv2.circle(img, (x, y), 3, (255, 255, 255), thickness=2)
cv2.putText(img, points, (x, y), cv2.FONT_HERSHEY_PLAIN, 2, (0, 0, 0), thickness=2)
cv2.imshow("image", img)

  cv2.namedWindow("image")
cv2.setMouseCallback("image", get_Color)
cv2.imshow("image", img)
cv2.waitKey(0)

  上述代码中的opencv函数都比较好理解,简单解释一下其中的参数吧。

  cv2.circle()中的几个参数分别为:图片,圆心,半径,颜色,线条的粗细。

  cv2.putText()中的几个参数分别为:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细。

  运行效果:

  最后再验证一下,提取到的颜色是否正确?

  可以拿一张带有颜色码的图片,运行我们的程序试试。

  验证成功,测试得到的十六进制颜色码与正确答案一致!

  作者:朱小五

  来源:快学Python

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
新东方女老师上热搜,上课这装扮让人无语,领口有必要这么低吗

新东方女老师上热搜,上课这装扮让人无语,领口有必要这么低吗

苏南流
2024-11-26 15:56:26
江苏首座来福士商业综合体将落地苏州工业园区

江苏首座来福士商业综合体将落地苏州工业园区

界面新闻
2024-11-27 13:42:30
叶嘉莹灵堂外排长队,72岁女儿露面举止动容,几月不见苍老太多!

叶嘉莹灵堂外排长队,72岁女儿露面举止动容,几月不见苍老太多!

古希腊掌管松饼的神
2024-11-27 11:36:45
单价超15万的豪宅,今年已成交超2000套!谁在扫货上海豪宅?

单价超15万的豪宅,今年已成交超2000套!谁在扫货上海豪宅?

澎湃新闻
2024-11-27 09:26:39
李湘母女高调炫富,穿5万皮草秀气质,王诗龄戴460万名表惹争议

李湘母女高调炫富,穿5万皮草秀气质,王诗龄戴460万名表惹争议

南城无双
2024-11-27 11:51:12
收钱1.21亿、违法放贷33.2亿,刘连舸被判死刑

收钱1.21亿、违法放贷33.2亿,刘连舸被判死刑

新动察
2024-11-26 17:54:57
国民党立大功!朱立伦响应大陆号召,主动请缨围剿“台独”

国民党立大功!朱立伦响应大陆号召,主动请缨围剿“台独”

毕殿龙
2024-11-26 16:12:24
上海市委常委朱芝松任上落马!前天仍有公开活动

上海市委常委朱芝松任上落马!前天仍有公开活动

政知新媒体
2024-11-27 10:36:50
顾客吃火锅意外入镜店家直播间,双方闹上法院

顾客吃火锅意外入镜店家直播间,双方闹上法院

现代快报
2024-11-27 13:16:08
伊拉克人口普查初步结果公布:人口超4540万

伊拉克人口普查初步结果公布:人口超4540万

财联社
2024-11-26 04:43:05
吊牌全造假!大量进入酒店、民宿!成本不到40元,俩月售出6万件

吊牌全造假!大量进入酒店、民宿!成本不到40元,俩月售出6万件

奇思妙想草叶君
2024-11-26 23:50:16
台当局偷偷改了规矩:若解放军战机飞临台岛,台湾民众只有3分钟

台当局偷偷改了规矩:若解放军战机飞临台岛,台湾民众只有3分钟

猎火照狼山
2024-11-27 00:05:03
等不及俄倒下,31国调转枪口,德国先开第一枪,要让中国付出代价

等不及俄倒下,31国调转枪口,德国先开第一枪,要让中国付出代价

说天说地说实事
2024-11-26 21:07:16
悄悄升至第一集团,一手烂牌打出王炸,再这样打,西部没悬念了

悄悄升至第一集团,一手烂牌打出王炸,再这样打,西部没悬念了

青山隐隐啊
2024-11-27 10:47:02
65岁山口百惠近况曝光!O型腿明显,走路弯腰驼背,老得判若两人

65岁山口百惠近况曝光!O型腿明显,走路弯腰驼背,老得判若两人

山河月明史
2024-11-26 21:41:13
形势到底有多严峻?又有40岁男人熬不住要卖房子回老家…

形势到底有多严峻?又有40岁男人熬不住要卖房子回老家…

慧翔百科
2024-11-26 20:34:17
网传南京仙林湖地区房价暴跌!全面跌破2万,购房者撕心裂肺…

网传南京仙林湖地区房价暴跌!全面跌破2万,购房者撕心裂肺…

火山诗话
2024-11-27 09:06:15
管晨辰最新回应:看不惯吴柳芳用体操"擦边"!国家对她是有保障的

管晨辰最新回应:看不惯吴柳芳用体操"擦边"!国家对她是有保障的

篮球扫地僧
2024-11-25 17:24:44
金矿上的村庄:遥远的“暴富神话”与“三班倒”矿工丨封面头条

金矿上的村庄:遥远的“暴富神话”与“三班倒”矿工丨封面头条

封面新闻
2024-11-26 14:11:08
2岁儿童在车库玩耍被碾压身亡 律师:司机和物业若无过错 监护人负全责

2岁儿童在车库玩耍被碾压身亡 律师:司机和物业若无过错 监护人负全责

闪电新闻
2024-11-26 12:05:55
2024-11-27 15:47:00
Crossin的编程教室
Crossin的编程教室
简单有趣的python入门
428文章数 703关注度
往期回顾 全部

科技要闻

余承东:Mate70对得起那四字 靠抄袭没未来

头条要闻

中国铁建最新回应"副总经理马建军坠亡":等官网消息

头条要闻

中国铁建最新回应"副总经理马建军坠亡":等官网消息

体育要闻

扣篮命中率28%,NBA首发前锋

娱乐要闻

无性婚姻,深度抑郁,葛夕怎么走不掉

财经要闻

洪灏刘煜辉对谈实录 涉及A股、债务等!

汽车要闻

中国的超豪华车尊界S800 预售百万起/ L3级智驾

态度原创

教育
健康
时尚
手机
公开课

教育要闻

一切为了孩子

花18万治疗阿尔茨海默病,值不值?

幂姐带火的“渣女美甲”有多绝?高级巨显白,狠狠踩在我心巴上!

手机要闻

一加Ace 5性能实测:把骁龙8 Gen3调校成了骁龙8至尊版

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版