Python代码循环执行exe文件,并传入命令参数实现批量处理数据。

python调用exe程序 传入命令参数,并实现循环批处理文件

1、问题背景

参加MARS数据医疗赛道进行计算机视觉的比赛,比赛内容为赛题提供一批病理数字切片,由专业医师给出切片区域内T分期指标的标注。选手需要使用计算机视觉相关技术,按照TNM分期指标中“T”指标对切片内的区域进行分类预测,辅助医生进行识别,提高病理诊断效率。
使用TNM分期进行肿瘤评估时,T0代表无证据表明存在原发肿瘤、T1~T3代表癌细胞的侵入程度逐渐加深,Tis代表原位癌(上皮内肿瘤,未侵及固有层,高度不典型增生)。在初赛中,选手需要根据给定的kfb图片及json文件,对切片内划定的区域进行侵入程度的分类预测,共分为五类,包括T0、T1、T2、T3和Tis。

2、面临的问题

  1. 由于病理切片图像为医院专业器械得出,赛题方提供的是KFB格式的病理切片图像,在自己计算机上显示不出来,所以需要使用赛题方提供的exe文件(第三方提供)对kfb格式的图片进行转换,赛题方提供的可执行文件可以把kfb格式转换为tiff格式。
  2. 由于我们需要用深度学习去对数据进行预测,这里的图片数据非常多、并且一个图片就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。
作者:阿宇来了原文地址:https://blog.csdn.net/qq_45973897/article/details/127748672

%s 个评论

要回复文章请先登录注册