【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))}