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

基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文献


💥1 概述

由于各种肿瘤类型,在磁共振图像(MRI)中准确分割脑肿瘤是一项艰巨的任务。使用来自多模态MRI的信息和特征,包括结构MRI和来自扩散张量成像(DTI)的各向同性(p)和各向异性(q)分量,可以对大脑图像进行更准确的分析。方法:我们提出了一种新的基于3D超体素的学习方法,用于分割多模态MRI脑图像(常规MRI和DTI)中的肿瘤。超体素是使用多模态 MRI 数据集中的信息生成的。对于每个超体素,提取各种特征,包括文本描述符的直方图,使用一组具有不同大小和方向的Gabor滤波器计算,以及一阶强度统计特征。这些特征被输入到随机森林(RF)分类器中,将每个超体素分类为肿瘤核心,水肿或健康脑组织。结果:该方法在两个数据集上进行评估:1)我们的临床数据集:11张患者的多模态图像和2)BRATS 2013临床数据集:30张多模态图像。对于我们的临床数据集,使用多模态MRI检测肿瘤(包括肿瘤核心和水肿)的平均灵敏度为86%,平衡错误率(BER)为7%;而自动肿瘤分割与地面真相的骰子评分为 0.84。BRATS 2013数据集的相应结果分别为96%、2%和0.89。结论:该方法在脑肿瘤的分割中显示出有希望的结果。从多模态MRI图像中添加特征可以大大提高分割精度。该方法与所有肿瘤等级的专家描述非常匹配,从而提供了一种更快、更可重复的脑肿瘤检测和描述方法,以帮助患者管理。

📚2 运行结果

部分代码:

%% Save
% Save the supervoxel map volumes into MAT file
Output_Name = fullfile(Output_Path,['MRI_SLIC_Labels_Size',num2str(voxel_X),...'x',num2str(voxel_Y),'x',num2str(voxel_Z),'_Compactness_0',Cmpt,'_Case_',num2str(Case),'.mat']);
save (Output_Name,'SLIC_Labels_3D');%% Show the output
Slice = round(size(I,3)/2);
Image_2D = I(:,:,Slice,1);
Label1 = Label(:,:,Slice,1);
k1 = unique(Label1);
Label2 = zeros(size(Image_2D));
BW = zeros(size(Image_2D));
BW = logical(BW);
for idx = 1:numel(k1) % 1:kc_k = k1(idx);L = zeros(size(Image_2D));L(Label1==c_k)=1;BW2 = L;BW_temp = edge(BW2);Label2 = Label2+double(BW2)*c_k;BW = BW|BW_temp;
endfor P = 1:numel(ProtocolList)Image_2D = I(:,:,Slice,P);BW_Color = repmat(Image_2D,1,1,3);BW_Color = uint8(BW_Color*255);for layer = 1:2tempLayer = BW_Color(:,:,layer);tempLayer(BW) = 255;BW_Color(:,:,layer) = tempLayer;endtempLayer = BW_Color(:,:,3);tempLayer(BW) = 0;BW_Color(:,:,3) = tempLayer;figure(P);subplot(1,2,1); imshow(Image_2D,[])title(['Original: ',ProtocolList{P}])subplot(1,2,2); imshow(BW_Color,[])title('SuperVoxel')
end

%% Save
% Save the supervoxel map volumes into MAT file
Output_Name = fullfile(Output_Path,['MRI_SLIC_Labels_Size',num2str(voxel_X),...
    'x',num2str(voxel_Y),'x',num2str(voxel_Z),'_Compactness_0',Cmpt,'_Case_',num2str(Case),'.mat']);
save (Output_Name,'SLIC_Labels_3D');

%% Show the output
Slice = round(size(I,3)/2);
Image_2D = I(:,:,Slice,1);
Label1 = Label(:,:,Slice,1);
k1 = unique(Label1);
Label2 = zeros(size(Image_2D));
BW = zeros(size(Image_2D));
BW = logical(BW);
for idx = 1:numel(k1) % 1:k
    c_k = k1(idx);
    L = zeros(size(Image_2D));
    L(Label1==c_k)=1;
    BW2 = L;
    BW_temp = edge(BW2);
    Label2 = Label2+double(BW2)*c_k;
    BW = BW|BW_temp;
end

for P = 1:numel(ProtocolList)
    Image_2D = I(:,:,Slice,P);
    BW_Color = repmat(Image_2D,1,1,3);
    BW_Color = uint8(BW_Color*255);
    for layer = 1:2
        tempLayer = BW_Color(:,:,layer);
        tempLayer(BW) = 255;
        BW_Color(:,:,layer) = tempLayer;
    end
    tempLayer = BW_Color(:,:,3);
    tempLayer(BW) = 0;
    BW_Color(:,:,3) = tempLayer;
    figure(P);
    subplot(1,2,1); imshow(Image_2D,[])
    title(['Original: ',ProtocolList{P}])
    subplot(1,2,2); imshow(BW_Color,[])
    title('SuperVoxel')
end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文献

相关文章:

基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

【RocketMQ】(八)Rebalance负载均衡

消费者负载均衡,是指为消费组下的每个消费者分配订阅主题下的消费队列,分配了消费队列消费者就可以知道去消费哪个消费队列上面的消息,这里针对集群模式,因为广播模式,所有的消息队列可以被消费组下的每个消费者消费不…...

线性筛和埃氏筛

线性筛&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<ut…...

【Java 进阶篇】JDBC ResultSet 类详解

在Java应用程序中&#xff0c;与数据库交互通常涉及执行SQL查询以检索数据。一旦执行查询&#xff0c;您将获得一个ResultSet对象&#xff0c;该对象包含查询结果的数据。本文将深入介绍ResultSet类&#xff0c;它是Java JDBC编程中的一个核心类&#xff0c;用于处理查询结果。…...

Centos7常用服务脚本(.service)

Centos7常用服务脚本&#xff08;.service&#xff09; 注意&#xff1a;[Service]中配置路径必须使用绝对路径。 启停&#xff1a; systemctl { start | stop | restart | reload } xxx.service 自启动&#xff1a; systemctl { enable | disable } xxx.service nginx.se…...

MySQL 视图View的SQL语法和更新(视图篇 二)

视图语法基本操作 创建 -- [ ]表示可选 create [or replace] view 视图名称[(列名列表)] as select语句 [ with [cascaded | local ] check option ]; 添加&#xff08;虽然视图是虚拟表&#xff0c;但是向视图操作的数据实际上会影响到实际关联的表数据&#xff09; -- 视图添…...

38 翻转二叉树

翻转二叉树 理解题意&#xff0c;翻转即每个结点的左右子树翻转/对调题解1 递归——自下而上题解2 迭代——自上而下 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 提示&#xff1a; 树中节点数目范围在 [0, 100] 内-100 < Node.…...

数据结构-快速排序-C语言实现

引言&#xff1a;快速排序作为一种非常经典且高效的排序算法&#xff0c;无论是工作还是面试中广泛用到&#xff0c;作为一种分治思想&#xff0c;需要熟悉递归思想。下面来讲讲快速排序的实现和改进。 老规矩&#xff0c;先用图解来理解一下&#xff1a;&#xff08;这里使用快…...

玩客云Armbian_23.08.0-trunk_Onecloud_bookworm_edge_6.4.14.burn配置

固定IP # interface file auto-generated by buildrootauto lo iface lo inet loopback// 上面是默认的内容,下面是新增的内容,上下之间需要一个空行隔开 // 接口顶格写,属性的前面有一个tab的缩进 # The primary network interfaceauto eth0 iface eth0 inet staticaddress 1…...

Nginx查找耗时的接口

Nginx查找耗时的接口 # grep 是筛选的域名 awk中的$5是判断的状态码 sort中的15是指的upstream_response_time 当然也可以统计request_time的时间cat access.log | grep zhhll.icu | awk $5 200{print $0} | sort -k 15 -n -r | head -10 https://zhhll.icu/2021/linux/实…...

C++ Primer 一 变量和基本类型

本章讲解C内置的数据类型&#xff08;如&#xff1a;字符、整型、浮点数等&#xff09;和自定义数据类型的机制。下一章讲解C标准库里面定义的更加复杂的数据类型&#xff0c;比如可变长字符串和向量等。 1.基本内置类型 C内置的基本类型包括&#xff1a;算术类型和空类型。算…...

实体行业数字化转型怎么做?线上线下相结合的新零售体系怎么做?

如今&#xff0c;实体行业想要取得收入增长&#xff0c;只做线下业务或者只做线上业务&#xff0c;在当前的市场环境中是难以长久生存的&#xff0c;因此一定要线上线下相结合&#xff0c;将流量运作与线下转化进行充分结合&#xff0c;才能更好地发挥实体优势&#xff0c;带来…...

JAVA面经整理(5)

创建线程池不是说现用先创建&#xff0c;而是要是可以复用线程池中的线程&#xff0c;就很好地避免了大量用户态和内核态的交互&#xff0c;不需要频繁的创建和销毁线程 一)什么是池化技术&#xff1f;什么是线程池&#xff1f; 1)池化技术是提前准备好一些资源&#xff0c;在…...

【牛客网-面试必刷TOP101】二分查找题目

目录 二维数组中的查找_牛客题霸_牛客网 (nowcoder.com) 寻找峰值_牛客题霸_牛客网 (nowcoder.com) 数组中的逆序对_牛客题霸_牛客网 (nowcoder.com) 旋转数组的最小数字_牛客题霸_牛客网 (nowcoder.com) 二维数组中的查找_牛客题霸_牛客网 (nowcoder.com) 题意&#xff1a…...

【QT】自定义组件ui类添加到主ui界面方法

1.添加自定义组件到项目中 add new选择如下 写好类方法&#xff0c;确定即可 2.将新创建的ui类加入到主ui界面 选中新创建ui类的父类空块&#xff0c;右键选择提升为 选择并添加新创建的类...

FFmpeg 多图片合成视频带字幕和音乐+特效(淡入淡出,圆圈黑色淡出)

FFmpeg 多图片合成视频带字幕和音乐+特效(淡入淡出,圆圈黑色淡出) 效果图1. 报错及解决2. xfade、xfade_opeccl 特效切换3. ffmpeg命令行详解4. 源码4.1 auto.bash4.2 geneFade.py4.3 python moviepy合并视频及音频按照(视频长度截取对应的音频在合并)4.4 命令行记录参考这…...

上网Tips: Linux截取动态效果图工具_byzanz

链接1 链接2 安装&#xff1a; sudo apt-get install byzanz 查看指令 说明 byzanz-record --help日常操作 xwininfo点击 待录制窗口 左上角 byzanz-record -x 72 -y 64 -w 1848 -h 893 -d 10 --delay5 -c /home/xixi/myGIF/test.gif小工具 获取鼠标坐标 xdotool getm…...

下载盗版网站视频并将.ts视频文件合并

. 1.分析视频请求123 2.数据获取和拼接 1.分析视频请求 1 通过抓包观察我们发现视频是由.ts文件拼接成的每一个.ts文件代表一小段2 通过观察0.ts和1.ts的url我们发现他们只有最后一段不同我们网上找到url获取的包3 我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定…...

ElasticSearch - 基于 拼音分词器 和 IK分词器 模拟实现“百度”搜索框自动补全功能

目录 一、自动补全 1.1、效果说明 1.2、安装拼音分词器 1.3、自定义分词器 1.3.1、为什么要自定义分词器 1.3.2、分词器的构成 1.3.3、自定义分词器 1.3.4、面临的问题和解决办法 问题 解决方案 1.4、completion suggester 查询 1.4.1、基本概念和语法 1.4.2、示例…...

【kubernetes】kubernetes中的调度

1 调度过程 调度的本来含义是指决定某个任务交给某人来做的过程&#xff0c;kubernetes中的调度是指决定Pod在哪个Node上运行。 k8s的调度分为2个过程&#xff1a; 预选&#xff1a;去掉不满足条件的节点优选&#xff1a;对剩下符合条件的节点按照一些策略进行排序&#xff…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...