使用ITK-SNAP进行抠图操作并保存mask的实例
作者:云端浅蓝 发布时间:2022-09-01 00:44:31
标签:ITK-SNAP,抠图,mask
问题描述:
想要去掉图像背景,只保留中心部分
目标:
1.利用ITK-SNAP制作二值化标签(即mask)
2.利用软件ITK-SNAP把一幅图像中自己想要的部分抠出来
步骤:
1.保存mask
打开ITK-SNAP ,这是一款可以方便进行勾画操作,制作标签的软件
1.点击勾画按钮
2.在图像中选点进行勾画
3.勾画完成后点击accept,可以看到所勾画的区域被标签颜色所覆盖
4.滚动鼠标滚轮到下一层(对于3D图像),继续勾画
tips:点击"paste last polygon"按钮使用上一层的勾画结果,拖动勾画框可以进行修改
5.勾画完成后按ctrl+S保存图像,此时所保存的即为二值化的mask(标签)
(背景部分是0,高亮区域是设定的label值,这里为1)
2.提取目标区域(抠图)
思想:将保存的二值化mask与原图像做点乘,就可以将去除无关背景,得到中心区域的目标图像
方法:(对于nii格式的图像)
import nibabel as nib
import numpy as np
index = list(['1','14','4','5','7','70','148'])#一共7张待处理图像
for i in range (len(index)):
#图像位置
nii_file = '/home/YinXiaolong/1909/MRBrainS18_data/training_corrected_selected/'+index[i]+'/data/reg_IR.nii.gz'
nii_file2 = '/home/YinXiaolong/1910/mask_multiple/mask/' +'mask'+ index[i]+ '.nii.gz'
#载入图像
img = nib.load(nii_file).get_fdata()
img2 = nib.load(nii_file2).get_fdata()
#两幅图像相乘
img3 = np.multiply(img,img2)
#将矩阵转换为nii
array_img = nib.Nifti1Image(img3,None)
#保存并导出
nib.save(array_img, 'reg_IR'+'_'+index[i]+'.nii')
print('img'+index[i]+'Done')
对于一般格式图像利用numpy中的img = np.multiply(img1,img2)进行两幅图像的点乘即可。
来源:https://blog.csdn.net/DoReAGON/article/details/102872899
0
投稿
猜你喜欢
- 本文实例讲述了Python设置默认编码为utf8的方法。分享给大家供大家参考,具体如下:这是Python的编码问题,设置python的默认编
- 相对于自动化测试工具QTP来说,selenium小巧、免费,而且兼容Google、FireFox、IE多种浏览器,越来越多的人开始使用sel
- 一、安装mod_wsgi 3.4:./configure --with-apxs=/Users/levin/dev/apache2.2.27
- 通常的情况是,我们一般会载入一个模板文件,然后用 Context渲染它,最后返回这个处理好的HttpResponse对象给用户。 我们已经优
- 配置要求:IIS(win2000 server 自带)、Java 2 SDK 1.4.2 (或更高版本)、Tomcat Web Server
- 1. 概念图像融合: 两幅图片叠加在一起,形成前景背景的效果。2. 流程(1)读入要融合的两幅图片。(2)把两幅图片调整到统一大小,方便下一
- 引言Lambda 函数(也称为匿名函数)是函数式编程中的核心概念之一。支持多编程范例的 Python 也提供了一种简单的方法来定义 lamb
- 爬取结果:爬取代码import osimport jsonimport requestsfrom tqdm import tqdmdef l
- 前言今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码。于是乎,一个想法油然而生:“生活已经很无聊了,不如再无聊一点叭”。说干就
- 本文实例讲述了JS Object.preventExtensions(),Object.seal()与Object.freeze()用法。分
- 1.核心代码使用py2neo连接neo4j的方法:from py2neo import Graphgraph = Graph("h
- 最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定
- Mako是一个模板库。一种嵌入式的语言,能够实现简化组件布局以及继承,主要的用途也是和作用域有关,但是效果是最直接切灵活的,这些都是mako
- 察者模式定义定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新。观察者模式提供了一种对象设计,让
- 本次案例使用OpenCV和selenium来解决一下滑块验证码先说一下思路:弹出滑块验证码后使用selenium元素截图将验证码整个背景图截
- 开发环境集成开发工具:jupyter notebook 6.5.2集成开发环境:Python 3.10.6第三方库:to
- 1.使用str.split()方法可以使用pandas 内置的 str.split() 方法实现分割字符串类型的数据,并将分割结果写入Dat
- 将通过各种例子来了解如何在 Python 中使用 type() 函数。你好类型打印 "Hello World "几乎是你
- 平常在使用python命令过程中,基本上都是用来安装python库时才使用到在控制台的python命令。然而,python命令还有更多的妙用
- pytorch里面的maxpool,有一个属性叫ceil_mode,这个属性在api里面的解释是ceil_mode: when True,