python调用exe程序 传入命令参数,并实现循环批处理文件
1、问题背景
参加MARS数据医疗赛道进行计算机视觉的比赛,比赛内容为赛题提供一批病理数字切片,由专业医师给出切片区域内T分期指标的标注。选手需要使用计算机视觉相关技术,按照TNM分期指标中“T”指标对切片内的区域进行分类预测,辅助医生进行识别,提高病理诊断效率。
使用TNM分期进行肿瘤评估时,T0代表无证据表明存在原发肿瘤、T1~T3代表癌细胞的侵入程度逐渐加深,Tis代表原位癌(上皮内肿瘤,未侵及固有层,高度不典型增生)。在初赛中,选手需要根据给定的kfb图片及json文件,对切片内划定的区域进行侵入程度的分类预测,共分为五类,包括T0、T1、T2、T3和Tis。
2、面临的问题
- 由于病理切片图像为医院专业器械得出,赛题方提供的是KFB格式的病理切片图像,在自己计算机上显示不出来,所以需要使用赛题方提供的exe文件(第三方提供)对kfb格式的图片进行转换,赛题方提供的可执行文件可以把kfb格式转换为tiff格式。
- 由于我们需要用深度学习去对数据进行预测,这里的图片数据非常多、并且一个图片就400M+,显然一张一张照片转换是非常费时的,所以需要写一个python脚本去给我们批量转换我们的数据。
3、代码实现(案例)
- 比如需要在命令行输入一下命令
- python代码 下面展示
用Python循环执行exe可执行文件
达到批量处理文件的需求。
import os
path ="D:\\BaiduNetdiskDownload\\MARS\\data\\T0\\"
main ="D:\\BaiduNetdiskDownload\\MARS\\tool\\KFbioConverter.exe"
suffixs =[]for file_name in os.listdir(path):if file_name.endswith(".kfb"):
suffix = file_name.split(".")[0]
# os.startfile(main + path + file_name + toPath + suffix +".tif 3")
path1 ="D:\\BaiduNetdiskDownload\\MARS\\data\\T0\\"+ file_name
toPath ="D:\\BaiduNetdiskDownload\\MARS\\data\\TIF0\\"+ suffix +".tif 3"
# 运行参数格式化
para ="%s %s %s"%(main, path1, toPath) # 注意是temp.bat不是exe
os.system(para)
- 转换结果
4、总结
- 开始在命令框中转换第一个图片的时候就感受到了绝望,因为图片极大都是45000*45000左右的图像(上面文件都加载不出来),这样的话一个T0数据集就需要转换一天,不过有了Python脚本就方便很多。
- 还有三个训练集数据和一个测试集数据还没有去下载,希望硬盘够用。
- 这么大的图片后面需要进行特殊的图像压缩处理,但又不能让图像失去原有图像的病理特征,然后再喂入深度学习的神经网络中。这里数据压缩还一头雾水,如果大神有好的方法请多多指教。
- 感兴趣的伙伴们可以一起交流交流u。
版权归原作者 阿宇来了 所有, 如有侵权,请联系我们删除。