ITK学习笔记(十二) SimpleITK获取二值图像bbox
ITK学习笔记(十二) SimpleITK获取二值图像bbox
sitk_ seg_ img = sitk . ReadImage( m )
bbox =get_ bbox_ from mask(sitk_ seg_ _img)def get_bbox_from_mask(bin_mask):# One is : sitk.LabelShapeStatisticsImageFilter()# Input: bin_mask# Output: bbox<x,y,z, length, width, height># here, x y z --> (R, A, S) when direction=(1,1,1)# Note: for GetArrayFromImage , it is <z, y, x># Front idx = 1, background idx = 0label_filter = sitk.LabelShapeStatisticsImageFilter()label_filter.Execute(bin_mask)bbox = label_filter.GetBoundingBox(1)return bboxdef get_bbox_from_volme_and_mask(sitk_seg_img):# Another is : sitk.LabelStatisticsImageFilter()# Input: <raw_img ,bin_mask># Output: bbox = <x_min, x_max, y_min, y_max, z_min, z_max># Note: for GetArrayFromImage , it is <z, y, x># Front idx = 1, background idx = 0label_filter = sitk.LabelStatisticsImageFilter()label_filter.Execute(sitk_seg_img, sitk_seg_img)bbox = label_filter.GetBoundingBox(1)return bbox
def get_bbox_from_mask(self, bin_mask):# One is : sitk.LabelShapeStatisticsImageFilter()# Input: bin_mask# Output: bbox<x,y,z, length, width, height># here, x y z --> (R, A, S) when direction=(1,1,1)# Note: for GetArrayFromImage , it is <z, y, x># Front idx = 1, background idx = 0label_filter = sitk.LabelShapeStatisticsImageFilter()label_filter.Execute(bin_mask)bbox = label_filter.GetBoundingBox(1)return bboxdef landmarkCanal(self):canalBoneNode = slicer.util.getFirstNodeByClassByName("vtkMRMLLabelMapVolumeNode", self._canal_seg)segbounds = np.zeros([6])canalBoneNode.GetBounds(segbounds)print("segbounds \n", segbounds)itkImagelabel = sitkUtils.PullVolumeFromSlicer(canalBoneNode)itkImagelabel = sitk.Cast(itkImagelabel, sitk.sitkUInt8)bbox = self.get_bbox_from_mask(itkImagelabel)print("bbox: \n", bbox)
ITK学习笔记(十二) SimpleITK获取二值图像bbox相关推荐
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
- ITK学习笔记(二)最大圆度连通域提取
ITK学习笔记(二)最大连通域提取 1.代码 1.1 code 1.2.生成的mask图片 1.3.打印信息 关于编译部分可以参考我的:VTK学习笔记(十)基于VTK和ITK程序 最大圆度概念: 圆度 ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- ROS学习笔记十二:使用roswtf
ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...
- 【现代机器人学】学习笔记十二:轮式移动机器人
目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...
- (C/C++学习笔记) 十二. 指针
十二. 指针 ● 基本概念 变量的地址就是指针,存放指针的变量就是指针变量(因而又叫作地址变量 address variable); 这个地址编号本身就是一个无符号的整数,在32位系统下为4字节(8位 ...
- Vue.js 学习笔记 十二 Vue发起Ajax请求
首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...
最新文章
- tensorflow.transpose() 举例
- 黄仁勋的“数据梦” 英伟达豪掷69亿美金虎口夺食
- 样式表放在顶部的好处
- VGGnet论文解读及代码实现
- 中文手册_Etherscan API中文手册
- laravel 与 tp5 获取控制器 方法名
- Cmake构建_指定gcc/g++版本
- C# 对IOC的理解 依赖的转移
- 在机关事业单位工作年满五十岁,工龄三十年提前退休好还是继续工作好?
- 单个数码管循环显示1-9
- 矩阵连乘c语言实验报告,矩阵连乘实验报告.docx
- Invalid bound statement (not found): 各种原因
- word模板动态填充并下载
- 好消息!这些城市个人手机、在家“刷脸”都能提取公积金,有你家吗?
- 区块链技术在网络安全上的应用
- Linux 上开通1521 端口
- CF - 777D. Cloud of Hashtags 暴力
- 迅为IMX6ULL开发板搭建Web服务器(二)
- 算法之地推算法(逆推法)
- 中兴网卡连不上网,解决方案如下