Mimics 21.0软件学习笔记(一)基本操作

article/2025/10/12 2:30:36

Materialise Mimics Medical 21.0

  • 打开工程
  • 窗口化
  • Thresholding 二值化
  • Region growing区域增长
  • 创建一个3D表示,并显示
    • 股骨头从髋臼中区分出来,并单独为股骨头建立3D模型
  • CT图像的形态学操作
  • STL+过程 STL+ 生成

  • 打开工程 Opening the Project
  • 窗口化 Windowing
  • 二值化 Thresholding
  • 区域增长 Region Growing
  • 建立 3D 表示 Creating a 3D representation
  • 显示 3D 表示 Displaying a 3D representation
  • CT图像的形态学操作
  • STL+过程 STL+ Procedures
  • 生成 STL 文件 Generating a STL file

打开工程

如,我们打开一个MedData中给的心脏的CT图片
在这里插入图片描述

  • 如果视图中有些方位标记有错需要修改, 在 IMAGE > Change Orientation
    中打开窗口你可以通过右键鼠标选择正确的方位。

在这里插入图片描述

  • 在菜单栏 VIEW > Indicators 中可以选择分别关闭刻度线(Trick
    Marks)、交叉线(IntersectionLines)、分片位置(Slice Position)、方位字符(Orientation
    strings) 指示器。
  • 窗口右侧的滚动条可以用来转动视图中的图片。

在这里插入图片描述

窗口化

首先,我们必须把不同视图中的图片对比度调整到一个合适的值。对比度的增强,有助于选择不同密度的部分,例如骨头和脑肿瘤,这个操作可以在任何时候做,可以在工程管理器的对比度标签中改变。

  • VIEW > Bottom Panel

在这里插入图片描述

  • 对比度标签显示了工程的直方图, 并且用一条线代表了“窗口”, 灰度值或者 HU
    值低于这条线的起点值的地方将会显示为黑色,所有灰度值在这条线终点值之上的将显示为白色,灰度值在窗口值之间的地方将显示为渐变的灰色。
  • 你可以单击鼠标左键拖动“窗口线” 到想要的位置来改变“窗口” 的大小,要想移动“窗口”,选择那条线并拖动到新的位置即可

Thresholding 二值化

SEGMENT > Threshold

  • 二值化保留分割对象的图片中灰度值大于或等于阈值的像素,有时需要定义阈值的上界(min)和下界(max),分割掩膜将保留所有灰度值在上下界之间的像素。例如,比较小的阈值选择病人的软组织比较容易,阈值比较大则只会保留比较稠密的部分
  • 定义上界和下界阈值选择神经部分就比较容易。如何定义一个好的阈值取决于建模的目的:
  • 如果你想要一个好看的模型,建议使用比较小的阈值,因为这样建出的模型洞比较少;
  • 相反,如果是为了建立义肢的模型服务的话就推荐使用比较大的阈值。

如,我们换个部位,股骨颈部位的CT:

在这里插入图片描述
还可以增加mask(蒙版),右键点击空白进行添加,还可以通过点击,设置显示哪种颜色的mask分割结果:
在这里插入图片描述
SEGMENT > Draw Profile Line
在轴视图中穿过骨头画一条线:在软组织地方单击鼠标左键来标记起始点, 拖动鼠标穿过骨头后单击,这样沿着这条线就产生一个强度截面,这些直横线代表了你现在的阈值。点击Start Thresholding,上下拖动下界直线来设定一个好的阈值。当选择好合适的阈值时,单击 End Thresholding 保存当前阈值。

在这里插入图片描述

Region growing区域增长

区域增长工具能够将二值化得到的分割分成几块,同时去除漂浮像素。
见后面的髋臼分离出股骨头的例子。

创建一个3D表示,并显示

在掩膜标签中你能够看到所有之前创建的掩膜以及他们各自的阈值,这些掩膜的名字是Green (如果新建了mask还会有Yellow和blue等),被选中的掩膜则为 active 的,同时可以重命名掩膜,方法为:如,单击 Green 为可编辑状态,输入新名字即可。

  • 右键单击空白 > Calculate Part…

在这里插入图片描述

  • 设置所生成模型的可视化质量,并Calculate

在这里插入图片描述
在这里插入图片描述

  • 菜单栏介绍:

在这里插入图片描述

  • 透明度设置:

在这里插入图片描述

  • 切片显示:

在这里插入图片描述

  • 体积渲染:点击“体积渲染”,将原来的绿色设为不显示,就能看到内部体积渲染的结果。
    在这里插入图片描述

  • Show / Hide triangles

在这里插入图片描述

股骨头从髋臼中区分出来,并单独为股骨头建立3D模型

由于分割的最终结果成功与否与CT图像的分辨率大小有关,有些分辨率不太够的可能会导致某些区域的边界处会有细微的相连导致分割失败,一种方法就是利用Edit Masks手动处理那些相对细微的连接区域,擦除一些边界处细微的连接区域,然后利用区域增长Region Grow进行区域的分割,得到股骨头和髋臼的分离结果。

【Edit Masks】
在这里插入图片描述

【区域增长菜单栏】
在这里插入图片描述
找到股骨头刚出现时的位置开始进行【Edit Masks】处理

提示:在区域增长之前必须进行二值化,因为二值化以后所有之前做的工作都没掉了。

【注】
在处理之前,最好通过Duplicate Mask来复制一份初始的mask,因为区域增长操作后,这些二值化的结果就发生变化了,要在处理之前备份一下。
在这里插入图片描述
选取源掩膜(这里取 Yellow)和目标掩膜(一个新掩膜),在感兴趣的对象(股骨头部分)的黄色区域单击鼠标左键, 此时程序开始计算新的分割,所有当前分割对象中与标记点相连接的点将组成一个新的掩膜, 这个新的分割标记为绿色,然后点击 Close 按钮关掉 Region Grow 窗口,在视图工具栏中选择 Green 掩膜,隐藏黄色掩膜之后可检查 Green 掩膜是否分割正确。

【分割结果】
在这里插入图片描述
【初步生成股骨头部分的3D模型】
在这里插入图片描述
不过会发现,股骨头里面很多地方缺了很多(俗话说像狗啃的一样)。所以继续回到分割面上进行再次地处理。
在这里插入图片描述
初学者的笨方法,通过Edit Masks的draw操作,一点一点填充回一些股骨头的部分。(后续会有更加高效的方法)
这里我可以右键选中mask点击,在Properties中可以修改mask的颜色,比如我换成了浅蓝色,并修改mask名字为Bone_Femoral,建立3D模型,会发现填充后的模型比原先好多了。
在这里插入图片描述
广化处理:
【用Edit masks在3D模型中进行股骨头建模】
20.0以及21.0版本的没有Edit mask in 3D这个菜单栏,所以我们先要:

  • VIEW > Visualization options > Mask 3D Preview

采用3D视角,再点击进行Edit Masks操作,就能直接在3D模型上进行处理
在这里插入图片描述
或者:
在这里插入图片描述
在这里插入图片描述

CT图像的形态学操作

这里学过数字图像处理的小伙伴就很熟悉了,图像的形态学操作包括腐蚀(Erode)、膨胀(Dilate)、开运算(Open)、闭运算(Close)

IMAGE > Morphology operations
在这里插入图片描述
【Erode】
在这里插入图片描述
【Dilate】
在这里插入图片描述
【Open】
在这里插入图片描述
【Close】
在这里插入图片描述
【填充空洞】:
在这里插入图片描述
Multiple Layer:多层填充(注意要使用该功能,所有平面一定要是闭合的,否则就填充出去了)

STL+过程 STL+ 生成

STL文件(STereo Lithography),一种为快速原型制造技术服务的三维图形文件格式。
在 Mimics 和 STL+之间的中间文件格式可以为以下几种:

  • “.3dd”文件
  • 掩膜
  • 3D 对象

FILE > Export > Binary STL / ASCII STL
在这里插入图片描述
可以选择多个掩膜,或者多个 3D 对象,但不能同时选择掩膜和 3D 对象。选择掩膜按了 Add 按钮之后,文件会出现在输出区域,你可以改变输出文件名,选择输出格式,有许多不同的输出格式,如 STL,VRML等。
在这里插入图片描述
点击 Next 按钮,将会出现转换到 STL 对话框,进一步的关于参数的解释可以查询手册,也可以点击help 按钮,选择合适的参数,然后单击 Finish 按钮,将生成一个 STL 文件,可用于打印。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/CqVgTAHl.shtml

相关文章

Mimics-基础操作教程-2

本篇主要介绍 MIMICS 中的 VIEW 菜单各项功能。 Camera 各选项功能介绍 1. Rotate选项: 旋转功能 Rotate 旋转功能只能在三维模型视图上使用,有以下几种不同的方法来实现旋转功能。 a. 使用用鼠标右键拖动; b. 使用箭头键进行精确旋转…

Mimics-基础操作教程-1

1. Mimics简介(Mimics21) Mimics---是一种交互式医学图像处理软件,是一个连接二维图像数据(CT, MRI, 工业扫描数据)和三维工程学应用的图像处理工具。应用领域包括:解剖学测量、三维分析、有限元分析(FEA)、客制化植入体或装置设…

dcl java_Java内存模型之从JVM角度分析DCL

DCL,即Double Check Lock,中卫双重检查锁定。其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错。他们为什么会写错呢?其错误根源在哪里?有什么解决方案?下面就随…

java dcl_【Java并发(七)】--java内存模型之DCL

如未作特殊说明,本文均为原创,转发请注明出处 [TOC] 前言 ​ 提到双重检查锁(Double-Checked Locking)通常简称为DCL,肯定很多人第一时间想到的就是单例模式。 ​ 单例模式通常有两种方式:饿汉与懒汉模式。那么懒汉模式采用了延迟…

java 单例 dcl_DCL单例到底需不需要volatile修饰

我们先来回答这个问题 DCL单例一定需要volatile修饰。 volatile有两个功能 内存可见 防止指令冲排序 这里主要考察volatile第二个功能。在介绍为什么DCL单例一定需要volatile修饰之前,我们先来看一下DCL单例和类实例化过程。 DCL单例 public class SingleExample { …

DCL命令

目录 1.MySQL中的权限 2.命令 2.1grant:赋权,给某个用户授予指定的权限。 2.2revoke:移除指定用户的权限 1.MySQL中的权限 角色:拥有某一类权限的用户的统称。比如:超级管理员,root;普通用户…

DCL单例模式

一、对象的创建过程 视频教程 对象的创建过程: 创建->初始化->建立连接 1.先申请内存,赋值默认值0 2.构造方法赋值初始值,8 3.建立连接,t->T 二、DCL单例 我们第一次写的单例模式是下面这样的: public cla…

MySQL之DCL

DCL (Data Control Language) DDL: create / alter / dropDML:insert /update/deleteDQL :select /showDCL :grant /revoke ​ 我们现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是&#…

DCL

管理用户、授权 1.管理用户 1.添加用户 2.删除用户 3.修改用户 4.查找用户 注意: 通配符% 表示可以在任意主机使用用户登录数据库 2.权限管理 1.查询权限 2.授予权限 3.撤销权限

Java ~ 双重检查锁(DCL)的原理与失效原因

前言 为了保证线程的安全性,往往要以牺牲性能为代价。为了兼得二者,前人进行了多番尝试,也确实创造出诸多有效方案,双重检查锁就是其中的一种。 DCL:Double Check Lock(双重检查锁)。令人哭笑不…

DCL——数据控制语言

DCL全称是Data Control Language,即数据控制语言,主要是用来管理数据库用户,控制数据库的访问权限。 1、查询用户 use mysql; select * from user; 在MySQL中 用户的信息和具有的权限的信息 都是存放在系统数据库mysql中的user表中。 ※ho…

JUC 第1章JUC简介

JUC简介 是什么 java.util.concurrent在并发编程中使用的工具类 2.进程/线程回顾 2.1进程/线程 进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本…

《尚硅谷高级技术之JUC高并发编程》学习笔记07——JUC三大辅助类

文章目录 减少计数:CountDownLatch循环栅栏 CyclicBarrier信号灯 Semaphore总结 JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为: CountDownLatch: 减少计数CyclicBarrier: 循…

JUC和线程池的详细讲解

这里写目录标题 JUC介绍基本概念JUC中的类和接口主要包含功能线程池为什么使用线程池什么是线程池使用线程池的特点优点缺点JUC中的线程池Executor介绍ThreadPoolExecutorThreadPoolExecutor是JUC中提供的默认线程池实现类构造方法参数详解corePoolSize 核心线程数2. workQueue…

JUC(并发编程)

该笔记大部分搬运B站遇见狂神说的javaJUC,顺便把图文合并记录,便于回顾 视频地址:【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili记得三连 目录 1.什么是JUC? 2.线程进程和程序 3.Lock锁(重点) 4.生产者和消费者问题! 5.八锁现…

JUC详解 | JUC概述

JUC详解 | JUC概述及其基础知识准备 前言一、1. JUC概述及基础知识准备1.JUC是什么?2. 进程和线程3. 并行和并发4. wait/sleep的区别5.创建线程回顾6. lambda表达式6.1 什么是lambda表达式6.2 案列6.3函数式接口6.4 小结 7. synchronized回顾8. synchronized的8锁问…

juc_lock

一个不是juc一个是juc情况 class Data2{private int number 0;Lock lock new ReentrantLock();Condition condition lock.newCondition();public void increment() throws Exception{lock.lock();try {while (number ! 0){condition.await();}number ;System.out.println(T…

JUC基础(周阳老师笔记

目录 一、JMM1.volatile2.加载代码练习: 二、JUC基础1.什么是进程/线程,并发/并行进程/线程并发/并行 2.线程的状态3.线程 操作 资源类4.Lambda表达式jdk8以后的interface 5.判断/干活/通知6.防止虚假唤醒(while not if)7.标志位lock精准通知condition 8…

什么是JUC

什么是JUC JUC指的是:Java里的三个包 java.util.concurrentjava.util.concurrent.atomic:原子性java.util.concurrent.locks:lock锁 回顾线程和进程 进程 程序执行的一次过程,一个进程包含一个或多个线程。进程是资源分配的单位…