LeadTools MedicalViewer
最近项目用到LeadTools,尤其是其中的MedicalViewer。由于对其不了解所以先学习后使用,这里把学习的知识点记录下来
什么是MedicalViewer
MedicalViewer是一种图像查看器,起可以查看一张或多张图像。同时支持对图像的多种操作,如:放大、缩小、旋转、标注等。
- 手动和编程调整屏幕布局。例如,在未放大 (1x1) XA 系列的 1X1 图像旁边显示放大 2X2 的 MRI 图像。
- 显示医学灰度和彩色图像,包括 MRI、CT、数字 X 射线和超声。
- 在图像上显示叠加信息——这是任何高端医学查看器的基本功能。程序员可以完全控制要显示的文本以及它在每个窗口内的位置和大小。该控件还带有一组内置叠加层,例如:窗口中心、窗口宽度值和视野
- 显示融合图像——多个重叠的图像,每个图像都有一定的透明度。可以混合来自不同模式的结果(例如,可以将 PET 图像与 CT 扫描混合)。
- 加载和播放动画。
- 更高质量的插值图像显示。
- 内置标尺,可根据图像的 DPI 和缩放或比例因子进行调整。
- 对齐图像的对齐标尺。
- 完全控制显示容器属性,例如颜色、光标和标尺。
- 自定义查找表 (LUT)
- 重置窗口级别、位置、旋转和缩放
- 查看器显示单元支持包括:
- 在查看器单元格中添加、删除或刷新页面或图像。
- 将不同大小的不同图像添加到同一单元格中。
- 使图像适合单元格。
- 管理不同类型的医学查看器叠加标签,如框架、比例或标尺单位。
- 更改单个子单元格的比例和偏移。包括在活动子单元格更改时触发的事件。
- 不使用注释标尺校准单元格。
- 冻结和解冻细胞。
- 反转指定单元格或子单元格中的图像。
- 获取或设置指定单元格或子单元格的透视旋转角度。
- 仅在选定单元格中显示参考线。
- 参考线显示索引值。
- 显示第一条和最后一条参考线。
- 内置工具包括:
- 窗口调平:控制对比度和亮度级别。使用用户定义的颜色图 (LUT) 映射灰度强度。包括设置/重置默认值,低内存选项。
- 使用动态或自定义缩放点缩放和缩放图像。获取或设置图像信息,如高度、宽度或坐标。
- 平移和移动图像。
- 使用放大镜。
- 使用所有者绘制的 SpyGlass。类似于放大镜,除了 SpyGlass 将图像区域的副本发送到事件,允许用户将任何效果应用于该副本。副本是当鼠标悬停在原始图像上的那个点上时显示的内容。
- 单击堆叠或从一个图像滚动到系列中的另一个。
- 使用探针工具。在光标下显示可自定义的像素信息。支持自定义文本和签名图像。
- 空间定位器。在一个 MPR 单元格上选择一个点,并让其他单元格滚动到该切片。
- 匹配比例。当一个单元格被选中并放大或缩小时,选择匹配比例以使其他单元格与缩放比例匹配。
- 注释(箭头、文本、矩形、椭圆、标尺、突出显示和角度)支持包括:
- 创建新注释对象时的事件通知。
- 选择注释时的事件通知。
- 加载并保存在控件上绘制的注释对象。
- 旋转、翻转和反转注释容器。
- 更改文本对象的前景色和背景色。
- 进行单个或多个注释选择。
- 禁用旧注释上的控制点。
- 锁定注释对象。
- 使用对齐标尺。
- 感兴趣区域(矩形、正方形、椭圆形、圆形、多边形、手绘、魔术棒、颜色范围、微移和收缩)支持包括:
- 加载、保存和打印在控件上绘制的区域信息。
- 创建、删除或更改区域时的事件通知。
- 单击并拖动鼠标操作以扩展、缩小、微移以及更改区域边界的大小或形状。
- 通过虚拟镜像添加区域。
- 删除一个区域。
- 工具设置和操作包括:
- 以编程方式或通过用户交互应用工具效果。
- 将工具效果应用于单个图像、系列中的所有图像或由控件管理的所有系列。
- 在动画运行时应用操作并调整 MedicalViewer。
- 获取与用户指定的鼠标坐标对应的图像坐标。
- 指定鼠标操作的事件。
- 指定鼠标按钮操作。
- 指定键盘按钮操作。
- 指定注释和区域的光标显示和样式。
- 执行光度解释并显示 Monochrome1 和 Monochrome2 图像。
引入MedicalViewer
1、引入LeadTools.Dll 这个是Leadtools基础开发包
2、引入 Leadtools.MedicalViewer.Dll 这是对MedicalViewer处理的官方包
3、引入 Leadtools.Dicom.Dll 由于我的项目是基于dicom文件处理所以需要引入这个包
4、引入Leadtools.Codecs.Dll 对图像处理的包
MedicalViewer构造函数
MedicalViewer() 创建一个原始干净的实例
MedicalViewer(bool) 创建一个是否制定网格模式的实例。如果为false 则不使用网格此时可以控制cell到特定位置
MedicalViewer(int row,int column) 创建一个实例,制定最大行数 和列数
MedicalViewer 组成
MedicalViewer是通过MedicalViewerCell来展示图片的。MedicalViewerCell有多个子类,来实现不同类型cell内容的加载、显示、操作等。一个cell可以加载一张或多张图像,如果是多张图像将出现滚动条允许用户滚动显示不同图像。
MedicalViewer-->cells--->cell
如上关系,对MedicalViewer操作很多时候是对其cell的操作