彩票走势图

LEADTOOLS使用教程:3D网格的创建与保存

转帖|使用教程|编辑:龚雪|2015-11-24 16:18:08.000|阅读 300 次

概述:LEADTOOLS旗下产品具有超强的位图图像处理功能,其中医疗图像、文档图像处理功能极其强大,本文是关于LEATOOLS产品相关教程,3D网格的创建与保存。附有代码,可供参考。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

1. 让我们以您在“创建一个3D对象”这一章中所创建的项目为开始吧。

2. 现在,请运行该程序。您将会看到一个 2x2 的布局,其中的每一个间隙都是以3D对象为填充的。该3D对象是使用VRT技术(容积重组技术)来呈现的。

3. 将该3D对象转换为网格。这是通过将容积类型转换为SSD(遮蔽表面显示法)来完成的。请在InitClass() 方法的末尾添加以下这些行的代码:

[Visual Basic]

  ' 将渲染对象的容积类型更改为SSD。
            control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD

[C#]     

  // 将渲染对象的容积类型更改为SSD。
            control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD;

4. 由于将对象转换为网格是一个相当耗费时间的过程,您可能需要将以下代码添加于以上的步骤(3)之前。

[Visual Basic]

   this.Show()
            this.Update()           

[C#]     

  this.Show();
            this.Update();

5.现在您已经创建了一个3D网格。要想改变其表面,您需要使用的是Medical3DObject.Slab.IsoThreshold属性。

6.保存该网格。为了保存该网格,您只需要在InitClass()的末尾添加以下这一行代码:

[Visual Basic]   ;        

// 将该网格以这个名称TestMesh进行保存。
            control3D.ObjectsContainer.Objects[0].SSD.SaveMesh("C:\TestMesh.x")

[C#]        

 // 将该网格保存为一个文件。
            control3D.ObjectsContainer.Objects[0].SSD.SaveMesh(@"C:\TestMesh.x");

7.该initClass() 方法应该如下所示:

[Visual Basic]           

Private Sub InitClass()
                 Dim MY_LICENSE_FILE As String = "d:\temp\TestLic.lic"
                 
                 ' 开启DICOM支持。
                 Dim MY_DicomDEVELOPER_KEY As String = "xyz123abc"
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                 
                 ' 开启Medical支持。
                 Dim MY_MedicalDEVELOPER_KEY As String = "abc123xyz"
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                 
                 ' 开启Medical 3D支持。
                 Dim MY_3DDEVELOPER_KEY As String = "123xyzabc"
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
                 
                 ' 创建一个将被用于加载图像的编解码器类的新实例。
                 Dim _codecs As RasterCodecs = New RasterCodecs()
                 ' 创建一个MedicalViewer的新实例。该查看器布局将被划分为2X2。     
                   Dim viewer As MedicalViewer = New MedicalViewer(2, 2)
                 ' 使该视图与整个窗体相匹配。
                 viewer.Dock = DockStyle.Fill
                 ' 创建一个包含3D对象的3D控件。
                 Dim control3D As Medical3DControl = New Medical3DControl()
                 control3D.AddAction(MedicalViewerActionType.WindowLevel)
                 control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                 Dim object3D As Medical3DObject = New Medical3DObject()
                 ' 将新创建的3D对象添加到控件。
                 control3D.ObjectsContainer.Objects.Add(object3D)
                 object3D.Image = _codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm")
                 '  将以上单元格添加到MedicalViewer。
                 viewer.Cells.Add(control3D)
                 Controls.Add(viewer)
                 
                 Me.Show()
                 Me.Update()
                 
                 ' 将渲染对象的容积类型更改为SSD。
                 control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD
                 
                 ' 将该网格保存为一个文件。
                 control3D.ObjectsContainer.Objects(0).SSD.SaveMesh("C:\TestMesh.x")
            End Sub

[C#]          

void InitClass()
            {
                 string MY_LICENSE_FILE = "d:\\temp\\TestLic.lic";
               
                 // 开启DICOM支持。
                 string MY_DicomDEVELOPER_KEY = "xyz123abc";
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                 
                 // 开启Medical支持。
                 string MY_MedicalDEVELOPER_KEY = "abc123xyz";
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                 
                 // 开启Medical 3D支持。
                 string MY_3DDEVELOPER_KEY = "123xyzabc";
                 RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
                 
                 // 创建一个将被用于加载图像的编解码器类的新实例。
                 RasterCodecs _codecs = new RasterCodecs();
                 // 创建一个MedicalViewer的新实例。该查看器布局将被划分为2X2。
                 MedicalViewer viewer = new MedicalViewer(2, 2);
                 // 使该视图与整个窗体相匹配。
                 viewer.Dock = DockStyle.Fill;
                 // 创建一个包含3D对象的3D控件。
                 Medical3DControl control3D = new Medical3DControl();
                 control3D.AddAction(MedicalViewerActionType.WindowLevel);
                 control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
                 Medical3DObject object3D = new Medical3DObject();
                 // 将新创建的3D对象添加到控件。
                 control3D.ObjectsContainer.Objects.Add(object3D);
                 object3D.Image = _codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm");
                 // 将以上单元格添加到MedicalViewer。
                 viewer.Cells.Add(control3D);
                 Controls.Add(viewer);
                 
                 this.Show();
                 this.Update();
                 
                 // 将渲染对象的容积类型更改为SSD。
                 control3D.ObjectsContainer.VolumeType = Medical3DVolumeType.SSD;
                 
                 // 将该网格保存为一个文件。
                 control3D.ObjectsContainer.Objects[0].SSD.SaveMesh(@"C:\TestMesh.x");
            }

运行该程序,您将会看到一个2×2的布局,其中包含一个以3D对象为填充的插槽。该3D对象是使用SSD技术(遮蔽表面显示法)来呈现的。

本文转自

购买最新正版授权!""

慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过!!优惠详情点击查看>>


标签:医疗图像图像处理文档图像

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP