Pytorch项目,肺癌检测项目之四

# 安装图像处理 的两个包 simpleITK 和 ipyvolume 

# 安装缓存相关的两个包  diskcache 和 cassandra-driver

import gzip
from diskcache import FanoutCache, Disk
from cassandra.cqltypes import BytesType

from diskcache import FanoutCache,Disk,core
from diskcache.core import io
from io import BytesIO
from diskcache.core import MODE_BINARY
from util.logconf import logging
log+ logging.getLogger(_name_)
log.setLevel(logging.INFO)

import matplotlib
matplotlib.use('nbagg')
import numpy as np
import matplotlib.pyplot as plt
from codel.dsets import Ct ,LunaDataset
clim = (-1000.0,300)

def findPositiveSamples(start_ndx=0,limit=100):
    ds = LinaDataset()
    positiveSample_list = []
    for sample_tup in ds.candidateInfo_list:
        if sample_tup.isNodule_bool:
            #print(len(positiveSanple_list),sample_tup)
        if len(positiveSample_list)>=linit:
            break
    return positiveSample_list


def showCandidate(series_uid,batch_ndx=None, **kwargs):
    ds = LunaDataset(series_uid=series_uid,**kwargs)
    pos_list = [i for i, x in enumerate(ds.candidateInfo_list) if x.isNodule_bool]
    
    if batch_ndx is None:
        if pos_list:
            batch_ndx = pos_list[0]
        else:
            print("Warning: no positive samples found : using frist negative sample.")
            
            batch_ndx = 0
    cd = Ct(series_uid)
    cd_t,pos_t,series_uid,center_irc = ds[batch_ndx]
    ct_a = ct_t[0].numpy()
    #图像的设置问题,设置图片的大小
    fig = plt.figure(figsize=(30,50))
    #设置切片位置
    group_list = [[9,11,13],[15,16,17],[19,21,23]]
    
    # add_subplot(3,4,,9) 写在三行四列第九个位置
    subplot = fig.add_subplot(len(grooup_list)+2,3,1)
    
    sub.set_title('index {}'.format(int(center_irc[0])),fontsize=30)
    
    for label in (subplot.get_xticklabels()+ subplot.get_yticklabels()):
        label.set_fontsize(20)
    plt.imshow(ct.hu_a[int(center_irc[0])],clim=clim,cmap='gray')

for row index_list in enumerate(group_list):
    for col,index in enumerate(index_list):
        subplot=fig.add_subplot(len(group_list)+2,3,row*3+clo+7)
        subplot.set_title('sicle {}'.format(index),fontsize=30)
        for label in (subplot.get_xticklabels() + subplot.get_vticklabels()):
            label.set_fontsize(20)
            plt.imshow(ct_a[index],clim=clim,cmap='gary')
print(series_uid,batch_ndx,bool(pos_t[0]),pos_list)

总结:

(1)肺部肿瘤检测项目介绍

(2)了解CT数据,定制方案

(3)下载项目中使用的数据集

(4)对数据集进行处理

(5)如何可视化CT数据

问题挑战和思考调研

(1)缓存部分去掉加载数据集需要多长时间

(2)网站grand-challenge网站上还有木有以CT数据作为数据源的项目

(3)了解下除了CT图像数据,还有什么3D图像

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

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

相关文章

LabVIEW在横向辅助驾驶系统开发中的应用

LabVIEW在横向辅助驾驶系统开发中的应用 随着横向辅助驾驶技术的快速发展,越来越多的研究致力于提高该系统的效率和安全性。项目针对先进驾驶辅助系统(ADAS)中的横向辅助驾驶进行深入研究。在这项研究中,LabVIEW作为一个强大的系…

刷题第五十一天 84. 柱状图中最大矩形

好难,看解析: # 双指针 class Solution:def largestRectangleArea(self, heights: List[int]) -> int:size len(heights)# 两个DP数列储存的均是下标indexmin_left_index [0] * sizemin_right_index [0] * sizeresult 0# 记录每个柱子的左侧第一…

【并发设计模式】聊聊两阶段终止模式如何优雅终止线程

在软件设计中,抽象出了23种设计模式,用以解决对象的创建、组合、使用三种场景。在并发编程中,针对线程的操作,也抽象出对应的并发设计模式。 两阶段终止模式- 优雅停止线程避免共享的设计模式- 只读、Copy-on-write、Thread-Spec…

ubuntu常用指令

Ubuntu是一个基于Linux的操作系统,它使用了大量的命令行指令。这些指令对于管理系统、处理文件、监控资源和执行各种任务都非常有用。以下是一些常用的Ubuntu命令: 系统管理 sudo:提供管理员权限执行命令(例如 sudo apt update&a…

vmware安装中标麒麟高级服务器操作系统软件 V7.0操作系统

vmware安装中标麒麟高级服务器操作系统软件 V7.0操作系统 1、下载中标麒麟高级服务器操作系统软件 V7.0镜像2、安装中标麒麟高级服务器操作系统软件 V7.0操作系统 1、下载中标麒麟高级服务器操作系统软件 V7.0镜像 官方提供使用通道 访问官网 链接: https://www.kylinos.cn/ 下…

PHP之Trait理解, Trait介绍

一、来源 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。 Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和…

C/C++图型化编程

一、创建图形化窗口: 1.包含头文件: graphics.h:包含已经被淘汰的函数easyx.h:只包含最新的函数 2.两个函数就可以创建窗口: 打开:initgraph(int x,int y,int style);关闭:closegraph(); 3.窗口坐标的设置&#…

2023年浙大城市学院新生程序设计竞赛(同步赛)G

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先想法非常单一,一定是去枚举操作点,然后看它染白和不染的价值差值 也就是说,把一个黑色结点染白之后,对哪些结点的价值会影响 不难想象其实就是操作结点的子树和该点连通的…

5_js数组常用函数与let与const关键字

var 语句 用于声明一个函数范围或全局范围的变量。 1.1 const修饰 const:常量的值是无法改变的,也不能被重新声明。 PI:3.1415926.... 因为变量你修改值,就是等于把引用地址也修改了。 //申明不可变的值 const number 42; n…

在 linux 服务器上安装Redis数据库

先打开我们的Linux服务器 终端执行 安装redis sudo yum install redis然后 他会提示你要占多少磁盘空间 例如 我这里是 1.7 M 没问题就 y 然后回车就可以了 然后 我们这里执行 redis-cli --version这样 就能看到版本了 然后 我们可以根据版本选择启动命令 使用systemctl命…

SpringMVC:整合 SSM 上篇

文章目录 SpringMVC - 03整合 SSM 上篇一、准备工作二、MyBatis 层1. dao 层2. service 层 三、Spring 层四、SpringMVC 层五、执行六、说明 SpringMVC - 03 整合 SSM 上篇 用到的环境: IDEA 2019(JDK 1.8)MySQL 8.0.31Tomcat 8.5.85Maven…

期末加油站-图像处理期末知识点汇总

第三章:图像增强 一、概念 1.图像增强是通过某种技术有选择地突出对某一具体应用有用的信息,削弱或抑制一些无用的信息。 2. 图像增强处理不是无损处理,不能增加原图像的信息。 3. 图像增强按所处理的对象不同可分为: 灰度图像增…

用C的递归函数求n!-----(C每日一编程)

用递归函数求n! 有了上面这个递归公式就能写C代码了。 参考代码: int fac(int n) {if (n 1 || n 0)return 1;else return n * fac(n - 1); } void main() {int n;scanf("%d",&n);int f fac(n);printf("\n%d!%d\n", n, f); …

Druid源码阅读-DruidStatInterceptor实现

上次我们在druid-spring-boot-starter里面看到有一个DruidSpringAopConfiguration的配置类,然后引入了DruidStatInterceptor这样一个切面逻辑。今天我们就来看一下这个类的实现。 DruidStatInterceptor 这个类的包路径下入com.alibaba.druid.support.spring.stat。…

常见激活函数

激活函数是神经网络中的一种非线性变换,它在神经元的输出上引入了非线性性质,使神经网络能够更好地学习和适应复杂的数据模式。以下是一些常见的激活函数: Sigmoid 函数 Sigmoid 函数将输入映射到(0,1)之间…

第4章 | 安徽某高校《统计建模与R软件》期末复习

第4章 参数估计 参数估计是统计建模的关键步骤之一,它涉及根据样本数据推断总体参数的过程。在统计学中,参数通常用于描述总体的特征,如均值、方差等。通过参数估计,我们可以利用样本信息对这些未知参数进行推断,从而…

SpringBoot 整合 JPA:实战指南

大家好,我是升仔 背景介绍 JPA 作为 Java EE 的标准,提供了一种将 Java 对象映射到数据库表的方法。在 SpringBoot 中整合 JPA 不仅可以提升开发效率,还能使数据操作更加安全和方便。 准备工作 确保你的开发环境已经安装了 JDK、Maven、S…

Qt中实现短信验证码功能

在Qt中实现短信验证码功能,可以使用Qt的信号槽机制和计时器来实现。 首先,在mainwindow.h头文件中添加下列代码: #include <QMainWindow> #include <QTimer>namespace Ui {class MainWindow; }class MainWindow : public

JoySSL诚招SSL证书代理

不久前&#xff0c;阿里云宣布了一个让人稍感唏嘘的消息——它们的一年期免费SSL证书服务将停步&#xff0c;转而提供三个月期限的证书。这一变化&#xff0c;无疑会使得网站开发的公司在维持用户信任和网站安全上多出心思。然而&#xff0c;免费的午餐并没有彻底消失&#xff…

有关List的线程安全、高效读取:不变模式下的CopyOnWriteArrayList类、数据共享通道:BlockingQueue

有关List的线程安全 队列、链表之类的数据结构也是极常用的&#xff0c;几乎所有的应用程序都会与之相关。在java中&#xff0c; ArrayList和Vector都使用数组作为其内部实现。两者最大的不同在与Vector是线程安全的。 而ArrayList不是。此外LinkedList使用链表的数据结构实现…