比赛地址:https://tianchi.aliyun.com/competition/entrance/231717/introduction

这次比赛给的图非常大5万x5万,在训练之前必须要进行数据的切割。通常切割后的大小为512x512,或者1024x1024.

按照512x512切完后的结果如下:

切图时需要注意的几点是:

gdal的二进制安装包wheels在:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 这里获取

图像是4个channel,前三个是RGB,第四个是alpha通道(透明)丢掉

图像的区域很多事空白的需要滤掉,不处理。

切割的时候需要有冗余。

大小不能按照完全的512,1024等切割,切割的要大一点数据在后期需要增强:弱缩放,旋转等。

上代码:

from osgeo import gdal
from PIL import Image
import os if __name__=='__main__':
name=input("input the image number 1 or 2 you want clip:")
imagepath='./data/image_{}.png'.format(name)
n=os.path.basename(imagepath)[:-4]
labelname='./data/'+n+'_label.png'
dslb=gdal.Open(labelname)
ds=gdal.Open(imagepath)
wx=ds.RasterXSize
wy=ds.RasterYSize
stx=0
sty=0
step=900
outsize=1500
nullthresh=outsize*outsize*0.7
cx=0
cy=0
while cy+outsize<wy:
cx=0
while cx+outsize<wx:
img=ds.ReadAsArray(cx,cy,outsize,outsize)
img2=img[:3,:,:].transpose(1,2,0)
if (img2[:,:,0]==0).sum()>nullthresh:
cx+=step
print('kongbai...',cx,cy)
continue img2=Image.fromarray(img2,'RGB')
img2.save('./data/train/data1500/'+n+'_{}_{}.bmp'.format(cx,cy))
#deal with label
img=dslb.ReadAsArray(cx,cy,outsize,outsize)
img=Image.fromarray(img).convert('L')
img.save('./data/train/label1500/'+n+'_{}_{}.bmp'.format(cx,cy)) cx+=step
cy+=step

  

  路径需要修改,就可使用。

这里我按照1500x1500大小切割的,打算用1024训练。

这样的数据的切图就算准备完了。如下图:

最新文章

  1. phpmyadmin 长时间登陆不过期
  2. R-数据导入
  3. 苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推
  4. 修改 timezone
  5. [JavaScript] Array.prototype.reduce in JavaScript by example
  6. sql -以零作除数
  7. inux 安装中文支持包及中文字符集配置 +i18n
  8. Android app内语言环境切换
  9. php 之mysqli简单封装
  10. chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)
  11. WebApp之PC客户端
  12. Python3基础教程2——Python的标准数据类型
  13. java第7次作业
  14. springboot读取配置注解@ConfiguratioinProperties和@Value的区别
  15. JAVA Socket 编程---Socket 和 ServerSocket
  16. PS-Lite源码分析
  17. kali更新失败
  18. 【进阶修炼】&mdash;&mdash;改善C#程序质量(1)
  19. python笔记-6(import导入、time/datetime/random/os/sys模块)
  20. Python3.5 学习九

热门文章

  1. oracle导入失败,超出长度
  2. ASP.NET Core搭建多层网站架构【5-网站数据库实体设计及映射配置】
  3. Centos7 将应用添加快捷方式到applications 中以pycham为例[ubuntu]适用
  4. 模仿.NET框架ArrayList写一个自己的动态数组类MyArrayList,揭示foreach实现原理
  5. 搭建一个maven管理的ssm项目需要配置那些文件
  6. 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用正则化
  7. 【HV】HVIL-High Voltage Interlock Loop
  8. 安装pytorch
  9. 理解js中的原型链
  10. PLSQL报错: ORA-12170:TNS connect timeout occurred