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

您所在的位置:网站首页 雪碧图拆分 python基于cv2轮廓识别切割雪碧图

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

2024-06-08 07:22| 来源: 网络整理| 查看: 265

背景:参与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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3