一种三维图像的裁剪方法

【技术领域】

[0001] 本发明涉及图像处理技术领域,尤其涉及一种三维图像的裁剪方法。

【背景技术】

[0002] 无论是为了获得对象的完美三维(3D)图像,还是需要在对象的3D图像上模拟对 该对象的操作,都需要对3D图像进行裁剪。

[0003] 以医疗场景为例,复杂精准的外科手术越来越离不开3D医学影像分析及计算机 辅助手术系统。3D医学影像分析系统中很难一次生成完美的3D影像,往往需要从3D影像 上对其进行裁剪,以形成完美的3D影像。在计算机辅助手术系统中,如果需要直接在3D影 像上进行手术规划和手术模拟,同样需要对3D影像进行裁剪。

[0004] 因此,如何实现对3D图像的裁剪,是目前需要解决的问题。

【发明内容】

[0005] 本发明的目的是提供一种三维图像的裁剪方法,以实现对3D图像的裁剪。

[0006] 本发明的目的是通过以下技术方案实现的:

[0007] -种三维图像的裁剪方法,包括:

[0008] 根据对象的面素进行图像面绘制,得到所述对象在屏幕二维坐标系下的三维显示 图像,获取所述对象的每个体素在所述屏幕二维坐标系下对应的二维坐标;或者,根据对象 的体素进行图像体绘制,得到所述对象在屏幕二维坐标系下的三维显示图像和所述对象的 每个所述体素在所述屏幕二维坐标系下对应的二维坐标;

[0009] 确定所述三维显示图像上的待裁剪区域;

[0010] 舍弃位于所述待裁剪区域内的三维显示图像像素点所在二维坐标对应的所述体 素,及其对应的面素;

[0011] 根据保留下来的面素重新进行图像面绘制或根据保留下来的体素重新进行图像 体绘制。

[0012] 本发明实施例提供的方法,实现了对三维图像进行裁剪。并且,由于获取了对象的 每个体素在屏幕二维坐标系下对应的二维坐标,因此可以根据上述得到的体素与二维坐标 的对应关系舍弃位于待裁剪区域内的三维显示图像像素点所在二维坐标对应的体素及其 对应的面素。由于在二维坐标系下比较像素点位置关系,其运算量较小,从而提高了裁剪速 度,实现实时快速的三维图像裁剪。

【附图说明】

[0013] 图1为本发明实施例提供的一种方法流程图;

[0014] 图2为本发明实施例提供的进行图像绘制的方法流程图;

[0015] 图3为本发明实施例提供的对体素进行投影变换的方法流程图;

[0016] 图4为本发明实施例提供的三维显示图像像素点是否在闭合曲线内的判断方法 流程图;

[0017] 图5为本发明实施例提供的另一种方法流程图。

【具体实施方式】

[0018] 在对本发明实施例进行详细说明之前,首先对本发明实施例中涉及到的部分名词 进行解释说明。

[0019] 对象,是指三维图像所显示的三维物体。以医学领域为例,是指某个组织器官,例 如肝脏,心脏等等。

[0020] 世界坐标系,在三维物体所在空间定义的坐标系,是一个三维坐标系。假设针对某 对象,有N张切片图像组成图像序列,本发明实施例中,定义第一张切片图像的左上角为世 界坐标系的坐标原点,切片图像的行方向为世界坐标系的X轴正方向,切片图像的列方向 为世界坐标系的y轴正方向,图像序列的方向为z轴正方向,长度单位为1个像素点。本发 明实施例中,世界坐标系中的坐标与三维显示图像的坐标系中的坐标--对应。

[0021] 屏幕二维坐标系,定义屏幕显示区域的左上角为屏幕二维坐标系的原点,屏幕显 示区域的行方向为屏幕二维坐标系的X轴正方向,屏幕显示区域的列方向为屏幕二维坐标 系的y轴正方向,长度单位为1个像素点。

[0022] 体素,一种三维图像数据,可以从对象的图像序列中获得。

[0023] 面素,另一种三维图像数据,可以从对象的图像序列中获得,在世界坐标系下的相 同坐标处的体素和面素之间具有对应关系。

[0024] 三维显示图像,在屏幕上显示的三维效果的图像。

[0025] 图1所示为本发明实施例提供的三维图像的裁剪方法,其具体实现方式包括如下 操作:

[0026] 步骤100、根据对象的面素进行图像面绘制,得到所述对象在屏幕二维坐标系下的 三维显示图像,获取所述对象的每个体素在所述屏幕二维坐标系下对应的二维坐标;或者, 根据对象的体素进行图像体绘制,得到所述对象在屏幕二维坐标系下的三维显示图像和所 述对象的每个所述体素在所述屏幕二维坐标系下对应的二维坐标。

[0027] 进行图像体绘制或面绘制即将对象以三维形式显示在屏幕上。

[0028] 另外,本发明实施例也不限定绘制过程所采用的投影变换方式,既可以采用平行 投影,也可以采用透视投影。

[0029] 步骤110、确定上述三维显示图像上的待裁剪区域。

[0030] 步骤120、舍弃位于该待裁剪区域内的三维显示图像像素点所在二维坐标对应的 体素,以及这些体素对应的面素。

[0031] 步骤130、根据保留下来的面素重新进行图像面绘制或根据保留下来的体素重新 进行图像体绘制。

[0032] 该步骤即在屏幕上显示三维图像裁剪后的对象。

[0033] 本发明实施例提供的方法,实现了对三维图像进行裁剪。并且,由于获取了对象的 每个体素在屏幕二维坐标系下对应的二维坐标,因此可以根据上述得到的体素与二维坐标 的对应关系舍弃位于待裁剪区域内的三维显示图像像素点所在二维坐标对应的体素及其 对应的面素。由于在二维坐标系下比较像素点位置关系,其运算量较小,从而提高了裁减速 度,实现实时快速的三维图像裁剪。另外,由于在屏幕二维坐标系下比较位置关系,进而根 据对象的每个体素在屏幕二维坐标系下对应的二维坐标舍弃相应的体素和面素,可见不需 要构建待裁剪区域对应的三维区域,并在三维坐标系下直接对三维图像数据与三维区域进 行位置判断。其中,上述三维区域需要沿着体绘制或面绘制的投影方向的反方向进行构建, 受限于系统运算能力,在进行体绘制或面绘制时只能采用平行投影。由于本发明实施例提 供的方案不需要构建待裁剪区域对应的三维区域,也就不需要限定进行体绘制或面绘制的 投影方式,既可以采用平行投影,也可以采用透视投影。因此可以根据实际需要选择合适的 投影方式,另外,如果采用透视投影,还能够模拟人眼"近大远小"的视觉特征,带来更好的 用户体验。

[0034] 下面分别对本发明实施例的各个步骤进行详细说明。

[0035] 步骤100的具体实现方式:

[0036] 根据对象的面素进行图像面绘制或者根据对象的体素进行图像体绘制的具体实 现方式有多种,本发明对此不作限定。仅以图2所示的流程为例进行举例说明,如图2所示, 步骤100具体包括如下操作:

[0037] 步骤200、构建世界坐标系;

[0038] 步骤210、将三维图像数据(体素或面素)进行模型变换,并记录所使用的模型变 换矩阵。

[0039] 具体的,是进行旋转、平移和缩放,类似于三维物体放在场景中的适当位置。

[0040] 步骤220、将经过模型变换后的三维图像数据进行投影变换,并记录所使用的投影 变换矩阵。

[0041] 该步骤中,既可以进行平行投影,也可以进行透视投影。

[0042] 步骤230、将经过模型变换和投影变换后得到的数据显示于屏幕窗口的指定区域, 并记录视口变换矩阵。

[0043] 应当指出的是,上述处理过程既适用于体绘制,也适用于面绘制。

[0044] 其中,如果是体绘制,则根据体素依次进行模型变换,投影变换和视口变换;如果 是面绘制,则根据面素依次进行模型变换,投影变换和视口变换。

[0045] 上述步骤200~步骤230可以但不仅限于在现有的图像绘制平台(例如OpenGl 平台)上实现。

[0046] 如果进行面绘制,相

matlab如何对三维图进行裁剪,一种三维图像的裁剪方法相关推荐

  1. python画三维图-Python使用matplotlib绘制三维图形示例

    本文实例讲述了Python使用matplotlib绘制三维图形.分享给大家供大家参考,具体如下: 用二维泡泡图表示三维数据 泡泡的坐标2维,泡泡的大小三维,使用到的函数 plt.scatter(P[: ...

  2. matlab灰度图孔洞填充,一种深度图像空洞的自动填充方法与流程

    本发明涉及深度图像空洞填充技术,从彩色图像的结构相似性出发,求解空洞像素点的多尺度结构相似性,将空洞像素分为平滑区域空洞像素和非平滑区域空洞像素,并针对不同的空洞像素,采用不同的填充算法.在平滑区域空 ...

  3. php图像处理类实现缩放 裁剪 加水印,ThinkPHP图像的裁剪、缩放、加水印

    ThinkPHP 图片处理函数,需要文字水印字体,可在windows下 控制面板 > 大图标(右上角) > 字体 找到需要的字体 /** * 图像的裁剪.缩放.加水印 * @param s ...

  4. 圆形和多边形雷达图python-Matplotlib绘制雷达图和三维图的示例代码

    1.雷达图 程序示例 '''1.空白极坐标图''' import matplotlib.pyplot as plt plt.polar() plt.show() '''2.绘制一个极坐标点''' im ...

  5. Matplotlib绘制雷达图和三维图

    1.雷达图 程序示例 '''1.空白极坐标图''' import matplotlib.pyplot as pltplt.polar() plt.show()'''2.绘制一个极坐标点''' impo ...

  6. Auto CAD三维图怎么画?cad三维图怎么画教程

    Auto CAD是一款国内法家喻户晓的软件,作为一款设计绘图软件,它不仅可以二维绘图也可以三维设计,因此它广泛运用于机械.建筑等各领域,那么Auto CAD里要怎么画三维图呢?下面就来看下Auto C ...

  7. 剪叉式升降机构三维图 三菱水平多关节型机器人RH-6SDH5520 半自动钻孔机STP 给料机SW 全自动压力测试机SW 三色3D打印机STP 转盘式自动铆钉机STP 装卡环轴承扇叶机sw

    剪叉式升降机构三维图 三菱水平多关节型机器人RH-6SDH5520 半自动钻孔机STP 给料机SW 全自动压力测试机SW 三色3D打印机STP 转盘式自动铆钉机STP 装卡环轴承扇叶机sw 电脑自动剥 ...

  8. 涡轮发动机图测试线2010开关测试机SW辊子输送机用抓手SW双头精雕机IGSFPC折弯设备、FPC软板折弯机SWZ4直流电机_三维图Z4-112-4-1_5.5KW_160-1抛光机三维图

    涡轮发动机图 测试线2010开关测试机SW 辊子输送机用抓手SW 双头精雕机IGS FPC折弯设备.FPC软板折弯机SW Z4直流电机_三维图Z4-112-4-1_5.5KW_160-1 抛光机三维图 ...

  9. 2021-02-28 Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图

    Matlab绘制短时傅里叶变换的频谱图和时间-频率-幅值三维图 function [t,frequency,f_spectrum]=fft_s(y,windowlength,Fs) % 输入 : % ...

最新文章

  1. springboot---request 中Parameter,Attribute区别
  2. python程序设计题怎么写_《Python语言程序设计基础》第1章程序练习题
  3. LeetCode 371. 两整数之和(位运算加法)
  4. token与sessionId的区别——学习笔记
  5. 使用Dom4j创建xml文档
  6. IDC发布2020上半年SD-WAN报告:阿里云领跑国内服务市场
  7. java session 例子_JavaWeb——HttpSession常用方法示例
  8. android图片模糊处理
  9. L2:Abbott隐式格式有限差分法解一维明渠非恒定流
  10. 全球及中国CT机产业营销渠道现状与投资机遇研究报告2022版
  11. 矩阵减法c语言程序,矩阵的加减法
  12. 工具说明书 - FTDI芯片的USB转UART串口线
  13. Kafka安全认证授权配置
  14. Dataframe基础操作巩固——美国大选献金项目
  15. 蓝桥杯之平面切分(几何问题)
  16. Visual Odometry Revisited: What Should Be Learnt?(2020.2)
  17. android 虚拟技术打开,雷电安卓模拟器VT虚拟化打开方法教程
  18. Sequence-to-Sequence Model (Seq2Seq)
  19. python打印数组的全部元素
  20. MATLAB(完备)之图像.tif到真彩色图像、索引色图像、灰度图像、 真彩色图像RGB、YIQ图像、HSV图像、YCbCr图像转换代码

热门文章

  1. matlab rng函数使用说明
  2. 7.【入门】输入一个三位数,把个位和百位对调后输出
  3. 民用GPS精度不够的情况下是如何用于无人驾驶的
  4. VC中的*.aps,*.ncb.*.opt文件分别是做什么用的???
  5. EVE原料成本计算器 v1.0.0.0
  6. 我又花了28个小时分析了一下各省二类疫苗采购公示数据
  7. 【阿里校招最后一周】错过悔终生!
  8. Spring Boot项目部署到Docker的流程及一些容易踩的坑
  9. 为什么中国人的发音和老外的不一样
  10. go每日新闻--2020-11-20