【病理数据】svs格式数据解读

news2024/11/25 22:48:47

Openslide

病理图像通常以.svs格式存储在数据库中。要想使用python处理svs格式的图像,我们通常使用Openslide模块。
关于Openslide模块的安装详见这个博客:
【解决Error】ModuleNotFoundError: No module named ‘openslide‘

病理图像数据结构

病理图像svs数据是以金字塔结构存储的。
为什么病理图像会有这么多level?
不同的level对应不同的放大倍数
病理学家在用仪器对切片进行图像采集时,涉及到不同的放大倍数。不同的放大倍数展示了不同程度的细胞信息,例如放大倍数越小,看到的更多是全局的图像轮廓信息,放大倍数越大,看到的更多是局部的细胞分化等信息。这些不同的信息对于之后的肿瘤预测的不同任务有不同的作用。因此,svs格式保留了不同放大倍数下的图像信息。

在这里插入图片描述

可以使用以下代码查看WSI图像的level信息:

import openslide

# 打开WSI文件
slide = openslide.open_slide(wsi_path)
# 获取WSI的level数量
num_levels = slide.level_count
# 获取每个level下图像的维度大小
dimensions = slide.level_dimensions

print("WSI Level数量:", num_levels)
print("WSI Level明细:", dimensions)

在这里插入图片描述

level与放大倍数

上面我们了解到不同的level对应着不同的放大倍数,但是是否所有WSI图像的level都对应着相同的放大倍数呢?

# 获取WSI元数据,读取level0对应的放大倍数
if 'aperio.AppMag' in slide.properties.keys():
        level_0_magnification = int(slide.properties['aperio.AppMag'])
elif 'openslide.mpp-x' in slide.properties.keys():
        level_0_magnification = 40 if int(np.floor(float(slide.properties['openslide.mpp-x']) * 10)) == 2 else 20
else:
        level_0_magnification = 40

# 输出level0对应的放大倍数
print("level_0对应的放大倍数为:",level_0_magnification)

在这里插入图片描述
在这里插入图片描述
从以上两张图像中我们可以发现,不同WSI图像具有的level数量可能是不同的。并且对于不同的WSI图像,相同的level对应的放大倍数也不一定相同。

为什么是金字塔结构?

WSI病理图像的level越小,对应的放大倍数越大,由于是全视野切片图像,那自然整体图像大小便会更大。

参考

https://blog.csdn.net/HLK_1135/article/details/124700124
https://openslide.org/api/python/
https://www.cnblogs.com/xjkj/p/17706906.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1803557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发-面试题-0004-HashMap 和 Hashtable的区别

Java开发-面试题-0004-HashMap 和 Hashtable的区别 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯技术文) 生活…

FuTalk设计周刊-Vol.041

🔥AI漫谈 热点捕手 1、国产GPTs来了,基于智谱第4代大模型 全自研第四代基座大模型GLM-4,且所有更新迭代的能力全量上线。GLM-4性能相比GLM-3提升60%,逼近GPT-4(11月6日最新版本效果)。而同时推出的GLM-4-…

【篇二】使用springboot+vue实现阿里云oss文件直传,解决大文件分片上传问题

一、前言 上一篇《使用springbootvue实现阿里云oss上传》写了如何使用springbootvue实现阿里云oss文件上传。这种方式虽然通用,但有个弊端就是当上传大文件时,容易导致文件还未上传完页面请求就超时了,如果想把oss的文件路径保存到数据库则无…

思维,CF1575K - Knitting Batik

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1575K - Knitting Batik 二、解题报告 1、思路分析 诈骗题,上面…

How to: Build a Custom End-User Skin Selector

This section explains how to populate a ComboBoxEdit control with DevExpress skin items. 本节介绍如何使用DevExpress皮肤项填充ComboBoxEdit控件。 To populate a combo box editor, iterate through the SkinManager.Skins collection, which returns all currently a…

Vulnhub-DC5

靶机IP:192.168.20.139 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 LinuxphpNginx 环境 我们再去看前端界面,发现在contact界面有能提交的地方,但是经过测试不…

批量转换更高效:一键修改TXT后缀名转DOCX,轻松实现文件高效管理!

在日常生活和工作中,我们经常需要处理大量的文件,而文件格式的转换和管理往往是其中一项繁琐的任务。特别是当需要将大量的TXT文件转换为DOCX格式时,传统的逐个手动操作不仅效率低下,还容易出错。然而,现在有了我们这款…

【Mtk Camera开发学习】06 MTK 和 Qcom 平台支持通过 Camera 标准API 打开 USBCamera

本专栏内容针对 “知识星球”成员免费,欢迎关注公众号:小驰行动派,加入知识星球。 #MTK Camera开发学习系列 #小驰私房菜 Google 官方介绍文档: https://source.android.google.cn/docs/core/camera/external-usb-cameras?hlzh-…

SpringBoot+Vue教师工作量管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 教师管理员 功能截图

免费数据库同步软件

在信息化日益发展的今天,数据同步成为了企业和个人用户不可或缺的一部分。数据库同步软件作为数据同步的重要工具,能够帮助我们实现不同数据库系统之间的数据复制和同步,确保数据的一致性和完整性。本文将介绍几款免费数据库同步软件&#xf…

Go微服务: 分布式之通过可靠消息实现最终一致性

通过可靠消息实现最终一致性 可靠消息,就是靠普消息,还是基于之前的这个案例 比如这个订单服务,无论你是先发送消息,还是先新建订单,它其实都是发送的不可靠消息就是说如果这个消息,像mysql事务那样&#…

Nvidia Jetson/Orin/算能 +FPGA+AI大算力边缘计算盒子:潍柴雷沃智慧农业无人驾驶

潍柴雷沃智慧农业科技股份有限公司,是潍柴集团重要的战略业务单元,旗下收获机械、拖拉机等业务连续多年保持行业领先,是国内少数可以为现代农业提供全程机械化整体解决方案的品牌之一。潍柴集团完成对潍柴雷沃智慧农业战略重组后,…

牛客NC32 求平方根【简单 二分 Java/Go/C++】

题目 题目链接: https://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** para…

rv1126-rv1109-openssh-密码秘钥等功能修改

1.openssh是允许外部登录的工具 2.真的是很复杂的设备 3.移植分布,怎么得到我们想要的openssh 去网上自己寻找安装包下载; 4.怎么预制进arm主板,把编译出来的openssh放进去 其中除了ssh_config和sshd_config;其他都是秘钥,公钥和私钥; root账户走的秘钥的修改,不改是默认的r…

【学习笔记】解决 VMware Workstation 17 Player 和主机之间无法复制粘贴的问题

【学习笔记】解决 VMware Workstation 17 Player 和主机之间无法复制粘贴的问题 使用VMware Workstation 17 Player,再上面安装 Ubuntu ,安装完之后,需要和主机之间进行复制粘贴。 首先安装了VMware Tools。 在打开的页面下把 VMwareTools…

今年618,京东和爱奇艺为大屏品质“把关”

今年618电视大战,还是打响了。 根据京东618数据显示,618开门红阶段热卖TOP10电视均为75英寸以上的大屏,拥有超高画质的MiniLED电视成交量同比增长5倍。可以看到,大屏电视逐步成为消费主流,尤其是拥有出色视听体验的高…

【Emgu CV教程】10.14、ConnectedComponents()函数计算连通区域

文章目录 一、概念1.什么叫图像的连通区域2.提取连通区域的函数 二、简单应用1.原始素材2.代码3.运行结果4.连通区域上色 一、概念 1.什么叫图像的连通区域 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互…

韩顺平0基础学java——第19天

p396-406 final关键字 1.final修饰的为“常量”,需要给初始值。1可以直接定义时赋值,2在构造器中,3在代码块中。 注意静态代码块只能访问静态变量。 2.如果final修饰的关键字是静态的,那就不能在构造器中赋值,只能…

2024年最新Microsoft Edge关闭自动更新的方法分享

这里写自定义目录标题 打开【服务】 打开【服务】 windows中搜索服务,如下图: 打开服务界面,找到“Microsoft Edge Update Service (edgeupdate)” 及 “Microsoft Edge Update Service (edgeupdatem)” 两个服务,设置为禁用

C++ | Leetcode C++题解之第132题分割回文串II

题目&#xff1a; 题解&#xff1a; class Solution { public:int minCut(string s) {int n s.size();vector<vector<int>> g(n, vector<int>(n, true));for (int i n - 1; i > 0; --i) {for (int j i 1; j < n; j) {g[i][j] (s[i] s[j]) &…