python自制一个“颜色条”小工具(colorbar)

python讨论qq群:996113038


导语:

前两天,一个朋友找我帮忙,让我给她画一个25个刻度的“颜色条”。所谓颜色条,就是这样的。

颜色深浅代表的意思就是一个物理量的变化,颜色深代表物理量大,颜色浅代表这个物理量小。我需要在上面标注一下刻度(25个)。然后根据这位朋友给我的数据,标上数据。开始我的感觉是:这么简单的事情不是暴露智商吗?随便用matlab或者python的工具箱都可以把数据标上去啊!

可以用colorbar工具箱啊。随后发现,其实不那么简单。无论是matlab还是python自带的colorbar都只能标注最多十个刻度。就像下面的效果:

于是,我觉得自己开发一个画颜色条的代码。


代码及相关资源获取:

后台回复:colorbar,获取源代码。


开发工具:

python3.6.4

需要安装的包或者模块:

cv2

xlrd。


效果演示:

效果就是这样,2个刻度都可以标注好。


基本原理:

主要原理就是,你在网上找一个颜色条。然后放在代码的当前文件夹里面。在颜色图上标注的方法就是:用python的for循环,每一个循环增加一个刻度的像素点。然后标注上excel里面的数据。顺便再颜色条上标注一个“-”表示刻度。

说白了就是用代码测量像素点位置,然后标注数据。


部分代码:

核心代码就是下面这一段:

for i in range(0,25): 
    cv2.putText(bk_img,str1[i], (x1,y1), cv2.FONT_HERSHEY_SIMPLEX,0.3,(0,0,0), 1, cv2.LINE_AA)
    cv2.putText(bk_img,"-", (x0,y1), cv2.FONT_HERSHEY_SIMPLEX,0.3,(0,0,0), 1, cv2.LINE_AA)
    y1+=21

21代表的就是每个循环y轴方向增加21个像素点的距离。21个像素点也就是你自己需要的标尺刻度。

所以关键在于这个函数:

cv2.putText(bk_img,str1[i], (x1,y1), cv2.FONT_HERSHEY_SIMPLEX,0.3,(0,0,0), 1, cv2.LINE_AA)

这个函数意思就是在图上标注符号。str1[i]代表的是你要在图上标注什么符号。(x1,y1)代表的就是你要在图片上哪个点标注。具体的用法大家可以用查询。用help(cv2.putText)


              感谢大家观看,有钱的老板可以打赏一下小编哦!

扫描下方二维码,关注公众号

参考资料:

图片来源:https://www.pexels.com/search/flower/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值