转帖|使用教程|编辑:龚雪|2015-11-19 13:31:26.000|阅读 521 次
概述:本教程是关于位图图像处理控件LEADTOOLS使用教程:MPR视图创建3D对象。其中附有VB和C#代码,可供参考。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
本教程可以教您如何创建一个3D对象,和如何将三个MPR正交切片(轴向,矢状和冠状)呈现在一个单元格窗体上。
1.首先,请您启动在创建一个3D对象时所创建的那个项目。
2.现在,请运行程序,您将看到一个2x2的布局,其中的每一个间隔都是以3D对象为填充的。
3.现在,请您添加三个MPR单元格:
创建一个MedicalViewerMPRCell的新实例,并改变它的属性,以满足您的需求。在本演示程序中,我们将创建一个轴向单元格。为了做到这一点,请将以下几行代码添加到InitClass方法的底部:
[Visual Basic]
' 创建一个包含轴向框架的新单元格。 Dim axialCell As MedicalViewerMPRCell = New MedicalViewerMPRCell() ' 调整其部分属性以查看十字线。 axialCell.ShowMPRCrossHair = True axialCell.DistinguishMPRByColor = True
C#
// 创建一个包含轴向框架的新单元格。 MedicalViewerMPRCell axialCell = new MedicalViewerMPRCell(); // 调整其部分属性以查看十字线。 axialCell.ShowMPRCrossHair = true; axialCell.DistinguishMPRByColor = true;
4.通过AxialFrame属性将轴向单元格分配给Medical3DControl。为了做到这一点,请将以下一行代码添加到InitClass方法的底部:
[Visual Basic]
' 将该单元格 (axialCell) 分配到Medical3DControl的AxialFrame 属性。 control3D.AxialFrame = axialCell
C#
// 将该单元格 (axialCell) 分配到Medical3DControl的AxialFrame 属性。 control3D.AxialFrame = axialCell;
5.最后,将所创建的实例添加到查看器。为了做到这一点,请将以下一行代码添加到InitClass方法的底部:
[Visual Base]
' 将该轴向单元格添加到查看器 viewer.Cells.Add(axialCell)
C#
// 将该轴向单元格添加到查看器 viewer.Cells.Add(axialCell);
6.重复以上的3,4和5这几个步骤,以创建矢状和冠状单元格。但是,请注意这一点,在步骤4.中,您必须将矢状单元格分配给Medical3DControl中的SagittalFrame属性,并且必须将冠状单元格分配给Medical3DControl的CoronalFrame属性
该方法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); //创建一个可以用于加载图像的编解码器类的新实例。 RasterCodecs _codecs = new RasterCodecs(); //创建一个Medical查看器的新实例。其查看器布局将被划分为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); //创建一个包含轴向框架的新的单元格。 MedicalViewerMPRCell axialCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 axialCell.ShowMPRCrossHair = true; axialCell.DistinguishMPRByColor = true; //将该单元格(axialCell)分配给Medical3Dcontrol 的AxialFrame属性。 control3D.AxialFrame = axialCell; //将该轴向单元格添加到查看器。 viewer.Cells.Add(axialCell); //创建一个包含冠状框架的新单元格。 MedicalViewerMPRCell coronalCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 coronalCell.ShowMPRCrossHair = true; coronalCell.DistinguishMPRByColor = true; // 将该单元格 (coronalCell)分配给Medical3Dcontrol 的CoronalFrame 属性。 control3D.CoronalFrame = coronalCell; viewer.Cells.Add(coronalCell); //创建一个包含矢状框架的新单元格。 MedicalViewerMPRCell sagittalCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 sagittalCell.ShowMPRCrossHair = true; sagittalCell.DistinguishMPRByColor = true; //将该单元格(sagittalCell)分配给Medical 3D control的SagittalFrame属性。 control3D.SagittalFrame = sagittalCell; viewer.Cells.Add(sagittalCell); //将该查看器作为子目录添加到窗体。 this.Controls.Add(viewer); 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(); //创建一个Medical查看器的新实例。其查看器布局将被划分为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); //创建一个包含轴向框架的新的单元格。 MedicalViewerMPRCell axialCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 axialCell.ShowMPRCrossHair = true; axialCell.DistinguishMPRByColor = true; //将该单元格(axialCell)分配给Medical3Dcontrol 的AxialFrame属性。 control3D.AxialFrame = axialCell; //将该轴向单元格添加到查看器。 viewer.Cells.Add(axialCell); //创建一个包含冠状框架的新单元格。 MedicalViewerMPRCell coronalCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 coronalCell.ShowMPRCrossHair = true; coronalCell.DistinguishMPRByColor = true; //将该单元格 (coronalCell)分配给Medical3Dcontrol 的CoronalFrame 属性。 control3D.CoronalFrame = coronalCell; viewer.Cells.Add(coronalCell); //创建一个包含矢状框架的新单元格。 MedicalViewerMPRCell sagittalCell = new MedicalViewerMPRCell(); //调整其部分属性以查看十字线。 sagittalCell.ShowMPRCrossHair = true; sagittalCell.DistinguishMPRByColor = true; // 将该单元格(sagittalCell)分配给Medical 3D control的SagittalFrame属性。 control3D.SagittalFrame = sagittalCell; viewer.Cells.Add(sagittalCell); //将该查看器作为子目录添加到窗体。 this.Controls.Add(viewer); }
最后,请您运行该程序。您将能够看到四个单元格:一个适用于3D对象,另外三个则分别是轴向单元格,矢状单元格和冠状单元格。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn