- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 2019年终总结&核医学相关研究分享
2019,时光荏苒,白驹过隙。许久不写博客了,今天是19年最后一天了。觉得还是得写点什么,总结下过去的一年。这一年办了两件大事,一是娶了老婆,二是买了房。老妈出了车祸,现在恢复差不多了。生活上和老婆虽然时不时有些小矛盾,但还是和谐的。工作上这一年重构了一次项目,对核医学做了更多的支持。技术上觉得自己进步的不多,有些倦怠了,2020年希望多学习,多看书,另外希望探索探索AI方面的技术。...
2019-12-31 14:40:29 1456 1
原创 dicom 图像关于像素间距的一些问题研究
自从入职新公司后,一直比较忙,人也更懒了,所以一直没有写新的博客。最近得闲,会把半年来学到的一些东西陆续分享给大家。 今天主要分享一下dicom图片中的像素间距的问题。dicom中关于像素间距的tag主要有四个 1. (0028,0030) [DS] PixelSpacing 解释:校正或者修正后的像素间距2. (0028,0A02) [CS] PixelS...
2018-09-20 14:49:01 6476 5
原创 CT及MR的定位线功能实现
先说段废话,最近项目进行到了绘制定位线的时候,因为以前没有接触过CT、MR图像所以想当然的用MPR的方式去实现定位线,居然还实现了。不过后来跟临床的人谈了下,发现这种方式是错误的。浪费了很多时间。 教训:不懂的时候要去调研不能自己瞎琢磨。定位线实现的方式一、空间中如何定位定位线即切片在定位图上的交线,在一次检查当中,所有dicom图片及后期MPR处理生成的dicom图都是在一个统一的空间坐标系下的
2017-05-26 09:06:18 11406 4
原创 WebSocket部署到服务器时,出现连接失败的问题解决与分析
前段时间在本地写的一个WebSocket程序部署到服务器上时出错,做下记录和分析本地环境是:JDK1.8(32位) Tomcat8.0服务器环境是:JDK1.8(64位) Tomcat8.0本地运行是正常的。 在服务器部署运行时可以打开页面,并执行WebSocket连接失败并关闭的代码。如图: 问题解决:1.在Tomcat8部署的项目不要导入catalina.jar和websocket-api.
2017-03-16 11:27:40 29673 26
原创 基于WebSocket的dicom.PixelData的数据的传输
PixelData数据传输两个问题,第一个数据传输前后的格式转换。第二个数据的压缩与解压。第一步数据传输前后的格式转换后台1.通过Attributes 得到像素字节数组:pixelModel.setPixelData(att.getBytes(Tag.PixelData));2.转化为二进制字节流缓冲流:ByteBuffer buffer=ByteBuffer.wrap(dicom2json.get
2017-03-15 10:22:06 3024 9
原创 使用dcm4che3对jpeg压缩的dcm文件进行解压
前段时间项目比较忙,最近稍微得些空闲时间将dcm4che3的一些学习笔记整理一下今天总结一下使用dcm4che3对一些压缩过的dcm文件进行解压。在一些情况下,为了减小dcm文件网络传输的大小,需要对dcm文件中的PixelData数据进行JPEG压缩。JPEG压缩分为有损压缩和无损压缩。因为是医学的影像所以一般厂商都是采用无损压缩。压缩率可以达到60%左右,效果还不错。dcm4che3也支持对dm
2017-03-15 09:42:37 7598 9
原创 使用dcm4che3获取Dicom的bmp格式缩略图
前段时间在研究如何使用dcm4che3获取dicom的缩略图。 过程很曲折,因为网上资料很少,摸着石头过河。其实是很简单的。 其实使用ImageIO直接将dicom文件读入BufferedImage缓冲图像流中,然后在按照设置的图片大小写出到指定的格式的图片。下面是代码: public static boolean getThumbnails(String url) { B
2017-03-08 09:30:42 4651 7
原创 使用dcm4che3解析DICOM中,中文乱码问题
此前在使用dcm4che3解析DICOM图片是,发现国内的图片中有设计到中文的都显示乱码。PatientName=????°?PatientName=???×??????????然后用网上的一些使用比较多的DICOM看图软件(Sante DICOM Editor 5 )打开:可以看到病人姓名以及机构名称依旧是乱码。在网上找了一些资料应该是特殊字符集的问题。查看DICOM协议有有一段是这么来写的:F
2016-12-30 14:41:06 9369 27
转载 乱码是怎样形成的
简单来说,就是编码解码采用了不同的标准,下面我们来分析下这个问题更深层面的原因。首先我们的第一个问题是,计算机为什么需要编码?为什么需要编码?我们知道计算机处理的数据实际上都是二级制的数据,也就是计算机实际上只识别0和1两种状态。发明计算机的过程中人们需要解决的第一个问题就是文字的处理问题,也就是我们如何将文字符号转化为二级制数据,同时我们也需要能够将转化后的二进制数据重新转化为文字符号供我们阅读。
2016-12-27 11:56:25 1359
转载 ASCII、Unicode、GBK和UTF-8字符编码的区别联系
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号
2016-12-26 11:42:34 687
原创 Cornerstone.js学习笔记
Cornerstone简介CornerStone是一个交互式的显示,包括但不限于Dicom格式的医学影像的JavaScript库。 Corenerstone 是一个旨在搭建一个完全基于web的医学影像平台的开源项目。Cornerstone Core组件是一个在支持HTML5 canvas元素的现代浏览器上显示医学影像的轻量级的JavaScript库。Cornerstone Core自己并不会成为一
2016-12-21 14:19:54 7686 7
原创 JAVA解析DICOM图之获得16进制数据
最近的一个项目需要用JAVA来解析DICOM图片遇到一些问题下面做一些记录首先找一个*.dcm文件。用编辑器打开可以看到如下界面。我是用的编辑器是UltraEdit 红字标注的是字节码的标注,前面8行代码是文件的头信息一般没用。从第九行开始的四个十六进制数“44,49,43,4D”是很重要的。用ASCll码解释就是DICM。表示这是一个DICOM文件,这四个16进制数如果丢失或损坏,这个DIC
2016-12-08 15:58:12 3524 2
原创 Ionic填坑日记(二)
今天填的坑是ionic项目如何在实体机上运行的坑-将项目部署到android的命令ionic plaform add android-部署到ios的命令 ionic plaform add ios-项目暂时只做android 所以不用部署到ios上(这一步没有坑) -(坑来了)部署完后运行ionic run android -此时ionic会在Downloading http://service
2016-11-29 18:40:10 796
原创 Ionic 填坑日记(一)
Ionic 填坑日记(一)Ionic的环境安装中遇到的坑Ionic开发环境搭建需要以下几步:1.下载安装node.js(http://nodejs.org/)-安装完成后打开windows自带的Power Shell 命令行工具 -输入命令: node.js -v 查看node.js是否安装正确(这一步一般不会出错)2.使用npm安装 ionic和cordova-继续命令行输入npm in
2016-11-29 11:55:04 832
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人