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相关推荐

  1. OpenCV学习笔记(十二)——图像分割与提取

    在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...

  2. ITK学习笔记(二)最大圆度连通域提取

    ITK学习笔记(二)最大连通域提取 1.代码 1.1 code 1.2.生成的mask图片 1.3.打印信息 关于编译部分可以参考我的:VTK学习笔记(十)基于VTK和ITK程序 最大圆度概念: 圆度 ...

  3. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  4. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  5. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  6. ROS学习笔记十二:使用roswtf

    ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...

  7. 【现代机器人学】学习笔记十二:轮式移动机器人

    目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...

  8. (C/C++学习笔记) 十二. 指针

    十二. 指针 ● 基本概念 变量的地址就是指针,存放指针的变量就是指针变量(因而又叫作地址变量 address variable); 这个地址编号本身就是一个无符号的整数,在32位系统下为4字节(8位 ...

  9. Vue.js 学习笔记 十二 Vue发起Ajax请求

    首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...

最新文章

  1. tensorflow.transpose() 举例
  2. 黄仁勋的“数据梦” 英伟达豪掷69亿美金虎口夺食
  3. 样式表放在顶部的好处
  4. VGGnet论文解读及代码实现
  5. 中文手册_Etherscan API中文手册
  6. laravel 与 tp5 获取控制器 方法名
  7. Cmake构建_指定gcc/g++版本
  8. C# 对IOC的理解 依赖的转移
  9. 在机关事业单位工作年满五十岁,工龄三十年提前退休好还是继续工作好?
  10. 单个数码管循环显示1-9
  11. 矩阵连乘c语言实验报告,矩阵连乘实验报告.docx
  12. Invalid bound statement (not found): 各种原因
  13. word模板动态填充并下载
  14. 好消息!这些城市个人手机、在家“刷脸”都能提取公积金,有你家吗?
  15. 区块链技术在网络安全上的应用
  16. Linux 上开通1521 端口
  17. CF - 777D. Cloud of Hashtags 暴力
  18. 迅为IMX6ULL开发板搭建Web服务器(二)
  19. 算法之地推算法(逆推法)
  20. 中兴网卡连不上网,解决方案如下

热门文章

  1. 【做饭】论如何把肉炒硬
  2. Golang http短连接
  3. 【HTML】06-表格
  4. ubuntu14.04 OpenNI2 安装
  5. 软件架构中的架构模式和最佳实践:探索和实践
  6. 还需查看阿里巴巴 更多信息?
  7. 云计算与传统计算机的联系,云计算和超级计算机是什么关系?-通信/网络-与非网...
  8. 不可错过的资源下载。。学无止境呀。。
  9. dubbo-router
  10. python3 华为推送系统接入