当前位置: 首页 > news >正文

【QuPath 】QuPath 批量提取 SVS 文件元数据脚本

该脚本用于在 QuPath 环境下批量处理指定文件夹中的 SVS 格式图像文件。通过导入必要的图像服务器类,脚本可定位目标文件夹中的所有 SVS 文件,逐一创建图像服务器并提取元数据,随后将元数据信息打印并追加保存到指定的 TXT 文件中,同时设置了结果输出目录,便于集中管理提取的 SVS 文件元数据信息。

1. 获取每个WSI的元信息

// 导入必要的类
import qupath.lib.images.servers.ImageServerProvider
import qupath.lib.images.servers.ImageServer
import qupath.lib.scripting.QP// 设置路径
def inputDir = new File("D:/svs")  // 替换为你的SVS文件目录
def outputFile = new File(inputDir, "svs_metadata.txt")  // 结果保存路径
def outputDir = new File("D:/svs_output")  // 结果保存路径// 获取所有SVS文件
def svsFiles = inputDir.listFiles({f -> f.isFile() && f.getName().toLowerCase().endsWith(".svs")} as FileFilter)if (!svsFiles || svsFiles.length == 0) {print("未找到任何SVS文件!")return
}svsFiles.eachWithIndex { file, index ->def server = ImageServerProvider.buildServer(file.getAbsolutePath(), BufferedImage.class)def metadata = server.getMetadata()println metadataoutputFile.append(sprintf("%s\n", metadata))}

2. 批量WSI切分PATCH,并保存成图片文件。

// 导入必要的类
import qupath.lib.images.servers.ImageServerProvider
import qupath.lib.images.servers.ImageServer
import qupath.lib.scripting.QP
import qupath.lib.regions.RegionRequest
import javax.imageio.ImageIO// 设置路径
def inputDir = new File("D:/svs")  // 替换为你的SVS文件目录
def outputFile = new File(inputDir, "svs_metadata.txt")  // 结果保存路径
def outputDir = new File("D:/svs_output")  // 结果保存路径// 获取所有SVS文件
def svsFiles = inputDir.listFiles({f -> f.isFile() && f.getName().toLowerCase().endsWith(".svs")} as FileFilter)if (!svsFiles || svsFiles.length == 0) {print("未找到任何SVS文件!")return
}svsFiles.eachWithIndex { file, index ->def server = ImageServerProvider.buildServer(file.getAbsolutePath(), BufferedImage.class)def regionRequest = RegionRequest.createInstance(server.getPath(), server.getDownsampleForResolution(0), 50000, 50000, 2560, 2560) // 坐标为x,y,width,height格式def image = server.readRegion(regionRequest)ImageIO.write(image, "png", new File(outputDir, "${index + 1}.png"))def metadata = server.getMetadata()println metadata.classoutputFile.append(sprintf("%s\n", metadata))}

http://www.dtcms.com/a/322505.html

相关文章:

  • NLP:Transformer输出部分
  • DigitalProductId解密算法php调试版piddebug.php
  • Day02 员工管理,分类管理
  • 【线性代数】其他
  • 【Redis7.x】docker配置主从+sentinel监控遇到的问题与解决
  • 【LeetCode 热题 100】(六)矩阵
  • 解决本地连接服务器ollama的错误
  • 网站站长如何借助php推送示例提交网站内容加速百度收录?
  • 【26】C#实战篇—— 多个线程函数对同一个 Excel 文件进行写操作引起的文件冲突问题,解决方法
  • 代码随想录day60图论10
  • 使用 Ansys Discovery 进行动态设计和分析
  • Mac屏幕取色不准?探究原理和换算规则
  • Linux文件系统基石:透彻理解inode及其核心作用
  • LeetCode111~130题解
  • ABP VNext + Akka.NET:高并发处理与分布式计算
  • 【AGI】GPT-5:博士级AI助手的全面进化与协作智能时代的黎明
  • 如何输出一篇高质量的版本测试策略
  • WebGIS视角下基孔肯雅热流行风险地区分类实战解析
  • jupyter服务器创建账户加映射对外账户地址
  • stm32项目(24)——基于STM32的汽车CAN通信系统
  • React中实现完整的登录鉴权与权限控制系统
  • (一)React复习小满(userImmer/userMemo/useContext/userCallback/userRef)
  • 需求评审需要哪些角色参与
  • 嵌入式 - Linux软件编程
  • Web文件上传:本地与云存储实战
  • day 36_2025-08-09
  • 如何在 Ubuntu 24.04 LTS Linux 上安装 Azure Data Studio
  • C# 通过第三方库INIFileParser管理INI配置文件
  • Golang的本地缓存freecache
  • Linux中Docker redis介绍以及应用