在医生阅片确诊的过程中,当发线疑似病灶时在灰度显示下有时并不清晰,这时候就需要色彩增强效果来使灰度图像变为彩色图像。

LUT可以简单的理解为0-255的颜色映射值,例如:彩虹编码,将其打包成LUT格式文件,在读取图像后载入LUT:

                //实例化文件处理对象并打开文件
DicomFile dicomFile = DicomFile.Open(@"C:\101\1.dcm");
//获取dicom图像对象
DicomImage dicomImage = new DicomImage(dicomFile.Dataset);
//载入Lut
dicomImage.GrayscaleColorMap = ColorTable.LoadLUT(@"lut\1.lut");

看效果:

反色处理:

在有些类型的影像中,例如牙片(PX),胸片等,需要黑白反色的情况下观察病灶

在C#中需要用到指针,先将项目设置为允许不安全代码:

其中sourceImg是WriteableBitmap类型:

             #region -----反色-----

                    if (box.ConvertColor == "BlackWhite")
{
unsafe
{
var bytes = (byte*)sourceImg.BackBuffer.ToPointer();
sourceImg.Lock();
for (int i = ; i < sourceImg.BackBufferStride * sourceImg.PixelHeight; i++)
{
bytes[i] = (byte)( - bytes[i]);
}
sourceImg.AddDirtyRect(new Int32Rect(, , sourceImg.PixelWidth, sourceImg.PixelHeight));
sourceImg.Unlock();
}
} #endregion

看效果:

或者使用LUT逆灰度编码也能达到同样的效果。

附彩虹编码结构参考:

{   0,  0,  0,0 }, {   0,  0,  7,0 }, {   0,  0, 15,0 }, {   0,  0, 23,0 }, //4

{   0,  0, 31,0 }, {   0,  0, 39,0 }, {   0,  0, 47,0 }, {   0,  0, 55,0 }, //8

{   0,  0, 63,0 }, {   0,  0, 71,0 }, {   0,  0, 79,0 }, {   0,  0, 87,0 }, //12

{   0,  0, 85,0 }, {   0,  0,103,0 }, {   0,  0,111,0 }, {   0,  0,119,0 }, //16

{   0,  0,127,0 }, {   0,  0,135,0 }, {   0,  0,143,0 }, {   0,  0,151,0 }, //20

{   0,  0,159,0 }, {   0,  0,167,0 }, {   0,  0,175,0 }, {   0,  0,183,0 }, //24

{   0,  0,191,0 }, {   0,  0,199,0 }, {   0,  0,207,0 }, {   0,  0,215,0 }, //28

{   0,  0,223,0 }, {   0,  0,231,0 }, {   0,  0,239,0 }, {   0,  0,247,0 }, //32

{   0,  0,255,0 }, {   0,  8,255,0 }, {   0, 16,255,0 }, {   0, 24,255,0 }, //36

{   0, 32,255,0 }, {   0, 40,255,0 }, {   0, 48,255,0 }, {   0, 56,255,0 }, //40

{   0, 64,255,0 }, {   0, 72,255,0 }, {   0, 80,255,0 }, {   0, 88,255,0 }, //44

{   0, 96,255,0 }, {   0,104,255,0 }, {   0,112,255,0 }, {   0,120,255,0 }, //48

{   0,128,255,0 }, {   0,136,255,0 }, {   0,144,255,0 }, {   0,152,255,0 }, //52

{   0,160,255,0 }, {   0,168,255,0 }, {   0,176,255,0 }, {   0,184,255,0 }, //56

{   0,192,255,0 }, {   0,200,255,0 }, {   0,208,255,0 }, {   0,216,255,0 }, //60

{   0,224,255,0 }, {   6,232,255,0 }, {   0,240,255,0 }, {   0,248,255,0 }, //64

{   0,255,255,0 }, {   0,255,247,0 }, {   0,255,239,0 }, {   0,255,231,0 }, //68

{   0,255,223,0 }, {   0,255,215,0 }, {   0,255,207,0 }, {   0,255,199,0 }, //72

{   0,255,191,0 }, {   0,255,183,0 }, {   0,255,175,0 }, {   0,255,167,0 }, //76

{   0,255,159,0 }, {   0,255,151,0 }, {   0,255,143,0 }, {   0,255,135,0 }, //80

{   0,255,127,0 }, {   0,255,119,0 }, {   0,255,111,0 }, {   0,255,103,0 }, //84

{   0,255, 95,0 }, {   0,255, 87,0 }, {   0,255, 79,0 }, {   0,255, 71,0 }, //88

{   0,255, 63,0 }, {   0,255, 55,0 }, {   0,255, 47,0 }, {   0,255, 39,0 }, //92

{   0,255, 31,0 }, {   0,255, 23,0 }, {   0,255, 15,0 }, {   0,255,  7,0 }, //96

{   0,255,  0,0 }, {   8,255,  0,0 }, {  16,255,  0,0 }, {  24,255,  0,0 }, //100

{  32,255,  0,0 }, {  40,255,  0,0 }, {  48,255,  0,0 }, {  56,255,  0,0 }, //104

{  64,255,  0,0 }, {  72,255,  0,0 }, {  80,255,  0,0 }, {  88,255,  0,0 }, //108

{  96,255,  0,0 }, { 104,255,  0,0 }, { 112,255,  0,0 }, { 120,255,  0,0 }, //112

{ 128,255,  0,0 }, { 136,255,  0,0 }, { 144,255,  0,0 }, { 152,255,  0,0 }, //116

{ 160,255,  0,0 }, { 168,255,  0,0 }, { 176,255,  0,0 }, { 184,255,  0,0 }, //120

{ 192,255,  0,0 }, { 200,255,  0,0 }, { 208,255,  0,0 }, { 216,255,  0,0 }, //124

{ 224,255,  0,0 }, { 232,255,  0,0 }, { 240,255,  0,0 }, { 248,255,  0,0 }, //128

{ 255,255,  0,0 }, { 255,251,  0,0 }, { 255,247,  0,0 }, { 255,243,  0,0 }, //132

{ 255,239,  0,0 }, { 255,235,  0,0 }, { 255,231,  0,0 }, { 255,227,  0,0 }, //136

{ 255,223,  0,0 }, { 255,219,  0,0 }, { 255,215,  0,0 }, { 255,211,  0,0 }, //140

{ 255,207,  0,0 }, { 255,203,  0,0 }, { 255,199,  0,0 }, { 255,195,  0,0 }, //144

{ 255,191,  0,0 }, { 255,187,  0,0 }, { 255,183,  0,0 }, { 255,179,  0,0 }, //148

{ 255,175,  0,0 }, { 255,171,  0,0 }, { 255,167,  0,0 }, { 255,163,  0,0 }, //152

{ 255,159,  0,0 }, { 255,155,  0,0 }, { 255,151,  0,0 }, { 255,147,  0,0 }, //156

{ 255,143,  0,0 }, { 255,139,  0,0 }, { 255,135,  0,0 }, { 255,131,  0,0 }, //160

{ 255,127,  0,0 }, { 255,123,  0,0 }, { 255,119,  0,0 }, { 255,115,  0,0 }, //164

{ 255,111,  0,0 }, { 255,107,  0,0 }, { 255,103,  0,0 }, { 255, 99,  0,0 }, //168

{ 255, 95,  0,0 }, { 255, 91,  0,0 }, { 255, 87,  0,0 }, { 255, 83,  0,0 }, //172

{ 255, 79,  0,0 }, { 255, 75,  0,0 }, { 255, 71,  0,0 }, { 255, 67,  0,0 }, //176

{ 255, 63,  0,0 }, { 255, 59,  0,0 }, { 255, 55,  0,0 }, { 255, 51,  0,0 }, //180

{ 255, 47,  0,0 }, { 255, 43,  0,0 }, { 255, 39,  0,0 }, { 255, 35,  0,0 }, //184

{ 255, 31,  0,0 }, { 255, 27,  0,0 }, { 255, 23,  0,0 }, { 255, 19,  0,0 }, //188

{ 255, 15,  0,0 }, { 255, 11,  0,0 }, { 255,  7,  0,0 }, { 255,  3,  0,0 }, //192

{ 255,  0,  0,0 }, { 255,  4,  4,0 }, { 255,  8,  8,0 }, { 255, 12, 12,0 }, //196

{ 255, 16, 16,0 }, { 255, 20, 20,0 }, { 255, 24, 24,0 }, { 255, 28, 28,0 }, //200

{ 255, 32, 32,0 }, { 255, 36, 36,0 }, { 255, 40, 40,0 }, { 255, 44, 44,0 }, //204

{ 255, 48, 48,0 }, { 255, 52, 52,0 }, { 255, 56, 56,0 }, { 255, 60, 60,0 }, //208

{ 255, 64, 64,0 }, { 255, 68, 68,0 }, { 255, 72, 72,0 }, { 255, 76, 76,0 }, //212

{ 255, 80, 80,0 }, { 255, 84, 84,0 }, { 255, 88, 88,0 }, { 255, 92, 92,0 }, //216

{ 255, 96, 96,0 }, { 255,100,100,0 }, { 255,104,104,0 }, { 255,108,108,0 }, //220

{ 255,112,112,0 }, { 255,116,116,0 }, { 255,120,120,0 }, { 255,124,124,0 }, //224

{ 255,128,128,0 }, { 255,132,132,0 }, { 255,136,136,0 }, { 255,140,140,0 }, //228

{ 255,144,144,0 }, { 255,148,148,0 }, { 255,152,152,0 }, { 255,156,156,0 }, //232

{ 255,160,160,0 }, { 255,164,164,0 }, { 255,168,168,0 }, { 255,172,172,0 }, //236

{ 255,176,176,0 }, { 255,180,180,0 }, { 255,184,184,0 }, { 255,188,188,0 }, //240

{ 255,192,192,0 }, { 255,196,196,0 }, { 255,200,200,0 }, { 255,204,204,0 }, //244

{ 255,208,208,0 }, { 255,212,212,0 }, { 255,216,216,0 }, { 255,220,220,0 }, //248

{ 255,224,224,0 }, { 255,228,228,0 }, { 255,232,232,0 }, { 255,236,236,0 }, //252

{ 255,240,240,0 }, { 255,244,244,0 }, { 255,248,248,0 }, { 255,252,252,0 }, //256

C#开发PACS医学影像处理系统(十八):Dicom使用LUT色彩增强和反色的更多相关文章

  1. C#开发PACS医学影像处理系统(十二):绘图处理之图形标记

    在医生实际使用过程中,对于有病灶的影像需要一些2D绘图操作,例如对于病灶的标记和测量, 这就牵涉到在WPF中的2D绘图操作技术,一般的思路是监听鼠标的按下和抬起以及运动轨迹,目前整理出的常用绘图和测量 ...

  2. C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法

    1.定位线概念:某个方位的影像在另一个方向的影像上的投影相交线,例如横断面(从头到脚的方向)在矢状面(从左手到右手)上的影像投影面交线. 举个例子:右边的是MR(核磁共振)的某一帧切片,这是从头开始扫 ...

  3. C#开发PACS医学影像处理系统(十六):2D处理之影像平移和缩放

    1.平移,利用WPF中控件边距来控制位移: /// <summary> /// 平移图像 /// </summary> /// <param name="X&q ...

  4. C#开发PACS医学影像处理系统(十四):处理Dicom影像窗宽窗位

    概念解释(网络资料): 窗宽: 窗宽指CT图像所显示的CT 值范围.在此CT值范围内的组织结构按其密度高低从白到黑分为16 个灰阶以供观察对比.例如,窗宽选定为100 Hu ,则人眼可分辨的CT值为1 ...

  5. C#开发PACS医学影像处理系统(十九):Dicom影像放大镜

    在XAML代码设计器中,添加canvas画布与圆形几何对象,利用VisualBrush笔刷来复制画面内容到指定容器: <Canvas x:Name="CvsGlass" Wi ...

  6. C#开发PACS医学影像处理系统(十一):Dicom影像挂片协议

    通俗点说,挂片协议可以看作整个系统的一个相对复杂一点的配置文件,可以用JSON或XML格式来读取与保存, 另外,可以制作一个独立的exe配置程序来管理这些挂片协议. 假设配置了CT的挂片协议的右键菜单 ...

  7. C#开发PACS医学影像处理系统(二):界面布局之菜单栏

    在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,VerticalAlignment="Top" logo图片和标题 ...

  8. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  9. C#开发PACS医学影像处理系统(六):加载Dicom影像

    对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...

随机推荐

  1. Autocad.net利用Xaml创建Ribbon界面

    0.Ribbon界面 Ribbon界面设计语言最早于Office 2007出现,后来逐渐被其他Windows系统组件采用,一些专业软件也开始以Ribbon界面取代传统菜单栏设计.Ribbon设计语言显 ...

  2. MySQL空间函数实现位置打卡

    项目需求是跟用户当前位置判断是否在给定的地理位置范围内,符合位置限制才可以打卡,其中的位置范围是一个或多个不规则的多边形.如下图,判断用户是在清华还是北大. 图形获取区域坐标 因为项目前端使用微信小程 ...

  3. UML活动图(Activity Diagram)

    目录: 1.什么是活动图 2.活动图的构成 (1)起点 (2)重点 (3)活动名称 (4)判断条件 (5)同步条 (6)接收信号 (7)发送信号 (8)泳道 (9)转移 3.活动图实例--订单处理 4 ...

  4. 第六篇scrum冲刺

    一. 站立式会议 1.会议照片 2. 项目进展 团队成员 昨日完成任务 今日计划任务 吴茂平  新消息提醒功能设计 实现开发新消息提醒功能 陈忠明 歌曲批量下载压缩包 歌手收藏功能 吴尚谦  设计下载 ...

  5. 第二篇 Scrum冲刺博客

    一.会议图片 二.项目进展 成员 完成情况 今日任务 冯荣新 搜索框,首页轮播图,分类导航 商品列表,商品详情轮播图 陈泽佳 背景展示,选择并显示图片 历史足迹,静态页面 徐伟浩 登录权限获取 商品信 ...

  6. 洛谷p1052过河 路径压缩+dp

    洛谷 P1052 过河 思路部分可以看这篇博客 我将在这里对其进行一些解释与补充 首先我们先看题 乍一看 这不是模板题吗 然后开开心心的敲了一个简单dp上去 #include<iostream& ...

  7. Linux下非root用户运行Tomcat

    PS:Linux下使用非root用户运行tomcat的原因 由于项目需求,也由于root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限. 这意味着你的任何一个页面脚本(htm ...

  8. 双操作系统(ubuntu/windows7)安装教程

    前言 前两天出于项目原因,本人心血来潮地给久经战场的电脑老大哥找个小媳妇,哈哈哈,装了两个系统.分别是用了多年的win7和接触不久的Ubuntu,在其中遇到了一些坑,在此记录下来,希望能给自己和大家带 ...

  9. seo工程师是什么,需要什么技能?

    http://www.wocaoseo.com/thread-222-1-1.html      seo工程师是什么,SEO工程师是目前需求较大的一种职业,是搜索引擎营销的一种,主要是是通过网站优化技 ...

  10. Ubuntu安装Windows官方版QQ和微信(使用deepin wine)