python基于cv2轮廓识别切割雪碧图

背景:参与H5游戏前端开发工作一年多,工作之余也会学习node.js或者python来编写一些方便工作的脚本,工作的效率提高了不少,但是由于是项目中期加入工作室,故对于项目前期的各种知识都是属于欠缺的状态,故最近萌生出自己也写一款游戏的想法,以此来锻炼自己,提高自己的能力。

问题:开始准备阶段,在资源收集时,大多免费资源是一些打包的雪碧图,但是没有对应的plist/json配置文件。

常规办法:用ps抠选出对应的小图片保存。

思考:python有几个图像处理的库,应该有一些接口可以帮助我实现图集分割。

条件:雪碧图具有明显的透明区域界限(至少间隔一个透明像素)

处理方法一:

1、用PIL读取图片

2、numpy提取出透明通道

3、通过二维透明单通道矩阵提取出分割直线,从而得到对应的矩形

在进行矩阵处理的时候,由于本人对矩阵计算完全不熟,因此第3步执行不下去。

方法二:

1、2同上

3、将透明度矩阵二值化

4、通过cv2.findContours函数找到各个子图的轮廓

5、提取每个轮廓的最小外接矩形

6、切割保存

img = Image.open(fileName) #fileName 图片名字
img = img.convert('RGBA')  
np_data = np.array(img)    #转化成矩阵
np_a = np_data[:,:,3]      #提取出单透名通道
ret, binary = cv2.threshold(np_a,1,255,cv2.T
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值