dcm

将DCM文件保存成BMP文件或数据流

徘徊边缘 提交于 2020-03-17 06:19:18
DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组) DCMTK开源库介绍: DCMTK是目前最全面实现DICOM3.0标准的开源库,通过结合DCMTK开源库和CxImage图像开源库,能够很方便的开发属于自己的DCM文件编辑浏览软件。 DCMTK与CxImage的结合: 下面记录”DCM文件到BMP文件格式的转换“的学习和探索的过程。 1)BMP文件的格式这里不细讲(可自行参阅MSDN相关资料)。BMP属于设备无关图(DIB),内存中只要依次包含BMP文件头(BITMAPFILEHEADER)、BMP信息头(BITMAPINFOHEADER)、调色板(Palette),以及真实像素信息,就可以在所有显示设备中进行显示。因此将DCM文件转换到BMP格式的主要工作是:从DCM众多数据元中挑选出BMP文件头、信息头所必须的信息(如图像宽度、图像高度、每个像素所占的空间、像素数据等)。 2)此次采用了dcmtk中的dcmimgle开发包,利用DicomImage类提供的createWindowsDIB接口以及writeBMP来进行格式转化。具体代码如下: DcmFileFormat *mImage=new DcmFileFormat(); DJDecoderRegistration::registerCodecs(); // register JPEG

AutoSAR系列讲解(实践篇)12.3-Dcm

白昼怎懂夜的黑 提交于 2020-02-28 12:41:59
AutoSAR系列讲解(实践篇)12.3-Dcm Dcm 一、Dcm简介 二、Dcm的组成 三、DCM与模式管理 Dcm ->返回总目录<- 一、Dcm简介 Dcm(Diagnostic Communication manager,诊断通信管理)首先是相对于网络独立的一个模块,它已经不关心底层如何通信了(当然,通信是必不可少的)。该模块主要就是用来解析和使用诊断服务,它为诊断服务提供了一套公共API函数。同时,它不光能处理我们之前讲到的UDS协议,还能作用在OBD(ISO 15031-5)诊断协议上。其实之前我们讲解UDS的那些内容,基本上就是在DCM中实现的,比如管理诊断状态,检查诊断服务是否被ECU支持,根据SID去调用应用层服务等等。 还有一点,Dcm还可以做一些Bootloader的工作(大家可以看看UDS那一节中的SID表,最下面几个服务就可以用来做Bootloader烧写) 二、Dcm的组成 如果我们查看AutoSAR官方文档,会发现Dcm是由DSL(DiagnosticSession layer)、DSD(Diagnostic Serv 来源: CSDN 作者: 雪云飞星 链接: https://blog.csdn.net/xyfx_fhw/article/details/104543458

FPGA之道(8)时钟处理单元

谁说我不能喝 提交于 2020-02-10 16:31:55
文章目录 前言 背景 PLL Xilinx公司的锁相环结构简介 Altera公司的锁相环结构简介 DCM 前言 2020年2月10日15:02:18 这个时间的FPGA发展可以说已经很成熟了,Xilinx早已推出了ZYNQ系列,并推出了新工具VITIS 2019.2,当然Vivado并没有淘汰也几乎不可能淘汰,VITIS 2019.2自然也内含了Vivado 2019.2. 对于FPGA中的时钟处理单元,或者说时钟管理单元,在7系列FPGA中,有我们最常见的MMCM以及PLL,这在FPGA工程中,建立时钟IP核时可以清晰的看到。 至于更早期的时钟处理单元,有DCM、PLL等,叫法不同 ,下面根据《FPGA之道》这本书上的描述简单介绍一下。 背景 在实际的使用中,经常会碰到外部送给我们的时钟信号在频率或者相位上并不满足直接使用的要求,而内部时序逻辑又只能对时钟信号进行整数倍的分频,并且不能保证产生新时钟信号的相位稳定性,所以这个时候就需要用到时钟处理单元。 时钟处理单元可以对时钟信号进行高精度的倍频、分频和相位调整,因此对时序逻辑的设计非常重要。FPGA中的时钟处理单元共有两种:PLL和DCM,分别介绍如下: PLL PLL,英文全称:Phase Locked Loop,翻译成中文即锁相环。因为PLL调整输入时钟信号频率和相位的原理中利用了模拟电路的知识。因此一般来说

四、读取一系列dcm图片,然后重新写入

二次信任 提交于 2019-12-06 13:12:54
一、程序功能   读取一系列的CT dcm图片,然后重新写入到一个文件夹 二、代码    #pragma warning(disable:4996) #include "itkGDCMImageIO.h" #include "itkGDCMSeriesFileNames.h" #include "itkImageSeriesReader.h" #include "itkImageSeriesWriter.h" int main(int argc, char** argv) { //定义像素类型,图像类型,三维有符号数,定义指针 typedef signed short PixelType; const unsigned int Dimension = 3; typedef itk::Image< PixelType, Dimension > ImageType; typedef itk::ImageSeriesReader< ImageType > ReaderType; //声明读、写 DICOM 图 像 的 itk::GDCMImageIO对象 //itk::GDCMSeriesFileNames对象将生成并将构成所有体数据的切片的文件名进行排序 typedef itk::GDCMImageIO ImageIOType; typedef itk:

python matrix to rotation

℡╲_俬逩灬. 提交于 2019-11-29 23:59:28
# # -----------------------Rotation----------------------------------------- # import warnings # import numpy as np # import re # _AXIS_TO_IND = {'x': 0, 'y': 1, 'z': 2} # def _elementary_basis_vector(axis): # b = np.zeros(3) # b[_AXIS_TO_IND[axis]] = 1 # return b # def _compute_euler_from_dcm(dcm, seq, extrinsic=False): # # if extrinsic: # seq = seq[::-1] # # if dcm.ndim == 2: # dcm = dcm[None, :, :] # num_rotations = dcm.shape[0] # # # Step 0 # # Algorithm assumes axes as column vectors, here we use 1D vectors # n1 = _elementary_basis_vector(seq[0]) # n2 = _elementary_basis_vector(seq[1]) #