使用ITK-SNAP进行抠图操作并保存mask的实例


Posted in Python onJuly 01, 2020

问题描述:

想要去掉图像背景,只保留中心部分

目标:

1.利用ITK-SNAP制作二值化标签(即mask)

2.利用软件ITK-SNAP把一幅图像中自己想要的部分抠出来

步骤:

1.保存mask

打开ITK-SNAP ,这是一款可以方便进行勾画操作,制作标签的软件

1.点击勾画按钮

使用ITK-SNAP进行抠图操作并保存mask的实例

2.在图像中选点进行勾画

使用ITK-SNAP进行抠图操作并保存mask的实例

3.勾画完成后点击accept,可以看到所勾画的区域被标签颜色所覆盖

使用ITK-SNAP进行抠图操作并保存mask的实例

4.滚动鼠标滚轮到下一层(对于3D图像),继续勾画

tips:点击"paste last polygon"按钮使用上一层的勾画结果,拖动勾画框可以进行修改

使用ITK-SNAP进行抠图操作并保存mask的实例

5.勾画完成后按ctrl+S保存图像,此时所保存的即为二值化的mask(标签)

(背景部分是0,高亮区域是设定的label值,这里为1)

使用ITK-SNAP进行抠图操作并保存mask的实例

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)进行两幅图像的点乘即可。

以上这篇使用ITK-SNAP进行抠图操作并保存mask的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解在Python和IPython中使用Docker
Apr 28 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python实现矩阵转置的方法分析
Nov 24 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
python使用rsa非对称加密过程解析
Dec 28 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 #Python
.img/.hdr格式转.nii格式的操作
Jul 01 #Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 #Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 #Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 #Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 #Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 #Python
You might like
PHP队列用法实例
2014/11/05 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
使用Apache的rewrite
2021/03/09 Servers
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
Django中使用locals()函数的技巧
2015/07/16 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
简单英文演讲稿
2014/01/01 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
学生保证书
2015/01/16 职场文书