- 博客(24)
- 资源 (8)
- 收藏
- 关注
原创 DCM4CHE之OVERLAY层处理
概述有些dicom文件中会有一层蒙版,主要是在主台拍摄完后对图像做的近一步说明,这一块信息也是存在dicomtag中的,本文就来说明一下overlay层的解析和显示前提让我们先看看overlay是啥,见下图蓝色箭头指向的就是overlay层显示的东西overlay显示主要需要以下几个字段(其他还有帧数,起始位置等,遇到了再说):(6000,0010) Overlay Row...
2020-02-24 16:16:16
1226
2
原创 DCM4CHE之图像伪彩和反色
概述对于医疗dicom图像来说,为了更好的突出病灶点,对图像做伪彩和反色是必不可少的,今天就来介绍一下如何对dicom图像进行伪彩和反色操作。步骤对dicom图像进行解析,生成图片(可以参考我的另一篇博客 DCM4CHE图像显示)对生成出来的图片进行伪彩和反色处理注意:对图像进行伪彩处理需要伪彩表,简单来说就是一个256大小的数组,里面包含颜色值,为啥是256大家也能猜到,因为...
2020-02-24 10:22:56
2297
5
原创 DCM4CHE之DCIOM网络传输--storescu
概述DICOM网络传输采用的是C/S模式,storescu/storescp主要是处理dicom文件的传输存储,具体概念请见博客DICOM医学图像处理:DICOM网络传输本文主要介绍dcm4che中是如何处理和实现storescu服务的步骤引入dcm4che的依赖jar包设置(org.dcm4che3.net.Connection)连接的IP和端口设置(org.dcm4che3...
2020-02-17 16:06:54
4970
7
原创 DCM4CHE之DICOM网络传输--storescp
概述DICOM网络传输采用的是C/S模式,storescu/storescp主要是处理dicom文件的传输存储,具体概念请见博客DICOM医学图像处理:DICOM网络传输本文主要介绍dcm4che中是如何处理和实现storescp服务的步骤引入dcm4che的依赖jar包设置(org.dcm4che3.net.Connection)连接的IP和端口设置(org.dcm4che3...
2020-02-11 16:50:41
5169
9
原创 DCM4CHE处理多帧图像
概要 dicom医疗影像图像有单帧和多帧的分别,一般来说普通CT CR图像都是单帧的(也有多帧的情况),一般DXA和US图形是多帧的,今天我们就主要介绍一下多帧图像的处理准备工作准备一个多帧图像的dicom 查看这个dicom的压缩协议,如果是带压缩协议的dicom需要解压缩,具体的参见我的博客DCM4CHE解压缩的DICOM文件大概思路 单帧dicom是把一幅...
2020-02-09 13:07:16
3243
6
原创 DCM4CHE压缩DICOM文件
概要随着医疗影像的发展,影像设备拍摄的图像越来越大,越来越多,但医疗影像的存储成本是很高的(云存储就更不用说了),所以在存储的时候会先将医疗影像压缩,之后再存储,以节省存储成本,本文主要介绍dicom医疗影像的压缩。一般来说dicom医疗影像的默认压缩协议Transfer Syntax UID是1.2.840.10008.1.2,这种是可以直接去pixelData字段拿去显示的,我们就要把...
2020-02-07 16:32:02
1921
5
原创 DCM4CHE解压缩的DICOM文件
概要上一篇博客DCM4CHE图像显示是针对未压缩的dicom文件的显示处理,那对于压缩的dicom文件该怎样处理呢?本文就介绍带压缩协议的dicom文件处理。一.查看dicom的压缩协议 (也可以通过第三方dicom查看软件查看,tag:0020,0010) DicomInputStream dis = new DicomInputStream(new File("D:/dico...
2020-02-05 15:03:51
2793
6
原创 DCM4CHE图像显示
本文主要介绍dicom图像从拿到像素数据到显示到图像的基本过程,通过DCM4CHE获取dicom文件像素数据,通过默认窗宽窗位,显示到java的BufferedImage上,并将BufferedImage保存成jpg到本地
2020-02-04 19:21:09
3107
4
原创 DCM4CHE的使用
新建工程(这里我使用的Maven工程),不会新建Maven工程的自行百度,新建完成之后如下图所示Dcm4cheTest.java:package com.airking.dcm4che.dcm4cheTest;import java.io.File;import java.io.IOException;import org.dcm4che3.data.Attributes;imp...
2020-02-04 14:07:58
5802
原创 DCM4CHE源码编译
DCM4CHE源码编译下载源码dcm4che源码下载地址:https://github.com/dcm4che/dcm4che/tree/5.21.0注意:我目前下载使用的是版本号为5.21.0,其他版本自行下载,编译方法一样每个版本对应的JDK是不一样的,5.21.0对应的是JDK8需要安装maven开始编译源码打开CMD,进入下载目录,我的下载目录是D:\DCM4CHE\...
2020-02-03 23:54:31
2107
9
原创 Design Pattern 之 迭代器模式
定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。适用性访问一个聚合对象的内容而无需暴露它的内部表示 支持对聚合对象的多种遍历 为遍历不同的聚合结构提供一个统一的接口类图示例比如说餐厅中有一份中餐菜单是用vector存储,一份西餐菜单是用数组存储,现在要求我们为餐厅服务员提供一个统一的接口来访问这两个菜单的内容,这时候就可以用到迭代器
2015-12-24 15:05:35
286
转载 Design Pattern 之 单例模式
定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 java:public class Singleton{private volatile static Singleton m_singleton = nul
2015-12-23 16:45:56
351
转载 android.mk文件语法
$(call function)NDK提供的功能宏:得到function的值,它将返回文本化的信息。my-dir由Build System提供。返回包含Android.mk的目录路径。all-subdir-makefiles:返回一个列表,包含’my-dir’中所有子目录中的Android.mk。 this-makefile:当前Makefile的路径。 parent-makefile
2015-12-22 15:19:34
321
原创 NDK之java调用C方法
在这里NDK通过JNI调用c通常有两种方法,一种就是用javah编译出java的native方法,之后在c实现,另一种就是用RegisterNatives方法进行native方法的注册,再调用。。 鉴于代码好管理和方便查看我就采用第二种方法一、我先在java端写native方法,再将动态链接库加载到程序中public class UUIDNDK{static{System.loadLibr
2015-12-22 10:30:57
466
原创 程序员的发展之道---海贼王(山治)
对于日本动漫,我唯一喜欢,也是一直在追的就是海贼王,尤其喜欢里面的厨师山治,至于为什么喜欢他,也许是因为他和其他人比起来起来更像一个屌丝,为什么这么说呢?1.在路飞的队伍里,也只有他,索隆和娜美是没有吃过恶魔果实,没有超能力的,就是普通人2.索隆和娜美,一个以成为刀客为终极目的,不为其他所动;一个漂亮,性感,只有他更像个普通人,拥有普通人的喜怒哀乐色当然这只是我的个人看法,但是就是
2015-11-05 17:22:53
623
1
翻译 Objective-C 快速入门
Objective-C 是 C 语言的超集Objective-C 程序设计语言采用特定的语法,来定义类和方法、调用对象的方法、动态地扩展类,以及创建编程接口,来解决具体问题。Objective-C 作为 C 程序设计语言的超集,支持与 C 相同的基本语法。您会看到所有熟悉的元素,例如基本类型(int、float等)、结构、函数、指针,以及流程控制结构,如 if...else 语句和 for 语
2015-09-21 15:52:41
405
转载 发展之道:简单与专注
为什么要讲这样一个话题,主要源于最近碰到的几件事情。一个朋友想要做网站,给我讲了讲他的初步方案,毫无疑问,这是一个非常宏伟的综合性的网站,但我只听了一部分就让他打住了。我问他:你的网站到底跟别人有什么不同?他说:我的网站很专业很全面。我说:这没有意义,如果你还没有找到跟别人不同的话,建议你不要浪费那个精力和投入了。 如果个人或者小公司去做综合类网站,这是很不靠谱的事。现如今小网站的存活之道
2015-09-21 11:41:11
296
转载 抽象类和接口的区别
1.继承下面将从众所周知的接口和抽象类的区别开始。这种差异是关于继承的,任何类都可以实现多个接口,但是只能扩展一个类,也只能有一个父类。多个类扩展是一个语言特性,它存在于一些面向对象的语言。为什么呢?因为它带来的问题往往多于价值。当一个类有许多父类时,有一个情况就是完全相同的方法会声明多个,因此必须显式地“告知”究竟需要的是哪一个。这样的代码通常难以维护,因为对其进
2015-09-21 11:27:24
280
原创 JNI中类型转换
JNI中类型转换1.将jstring转char*char* converjstringtochar(JNIEnv *env, jstring res) {return (char*) env->GetStringUTFChars(res, 0);}2.将char*转jstringjstring converchartojstring(JNIEnv *env,
2015-09-21 10:17:58
450
转载 关于C++中const的理解
1. const修饰普通变量和指针 const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nValue;
2015-09-19 22:37:31
241
原创 C++ 值传递 指针传递和引用传递
java中参数传递只有值传递,与java不同,C++中的参数传递方式有三种,分别是 值传递 指针传递和引用传递,值传递和指针传递都知识传递当前参数的一个副本,而引用传递则是直接传递参数,所以在函数中改变参数的值就会有不同。1.值传递void replace(int i)//值传递{ i = 10;//改变的是i副本的值}执行下面代码in
2015-09-17 17:16:01
486
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人