L_DicomChangeTransferSyntax

# include“Ltdic.h”

L_LTDIC_APIL_UINT16L_DicomChangeTransferSyntax(hDS, pszUID, nQFactor, uFlags)

更改数据集的传输语法。

参数

HDICOMDShDS

数据集的DICOM句柄。

L_TCHAR* pszUID

包含新传输语法的UID的字符串。可能取值为:

价值 意义
UID_IMPLICIT_VR_LITTLE_ENDIAN “1.2.840.10008.1.2”
UID_EXPLICIT_VR_LITTLE_ENDIAN “1.2.840.10008.1.2.1”
UID_EXPLICIT_VR_BIG_ENDIAN “1.2.840.10008.1.2.2”
UID_JPEG_BASELINE_1 “1.2.840.10008.1.2.4.50”
UID_JPEG_EXTENDED_2_4 “1.2.840.10008.1.2.4.51”
UID_JPEG_LOSSLESS_NONHIER_14 “1.2.840.10008.1.2.4.57”
UID_JPEG_LOSSLESS_NONHIER_14B “1.2.840.10008.1.2.4.70”
UID_RLE_LOSSLESS “1.2.840.10008.1.2.5”
UID_JPEG2000_LOSSLESS_ONLY “1.2.840.10008.1.2.4.90”
UID_JPEG2000 “1.2.840.10008.1.2.4.91”

L_INT32nQFactor

质量因子(Q因子)是一个决定压缩过程中损失程度的数字。您可以设置一个从2到255的值,其中2是最高质量,255是最大压缩。此参数仅适用于新传输语法涉及使用有损压缩压缩像素数据时。

L_UINT32uFlags

标志,指示如何执行压缩。可能取值为:

价值 意义
DICOM_CHANGETRAN_MINIMIZE_JPEG_SIZE [0x00000001]如果设置,并且新的传输语法使用JPEG压缩,JPEG压缩引擎将使用优化的霍夫曼表,这将导致更好的压缩,但速度较慢。
DICOM_CHANGETRAN_RESCALE_MODALITY_LUT_WHEN_LOSSY_COMPRESSED [0x00000002]如果设置了,并且新的传输语法使用JPEG有损压缩,则当前的任何模态LUT都将被重新缩放,以考虑由于有损压缩而导致的最小和最大灰度值的变化。
DICOM_CHANGETRAN_YBR_FULL [0x00000100]此标志仅对彩色图像有效,如果pszUID是下列之一:
——UID_IMPLICIT_VR_LITTLE_ENDIAN
——UID_EXPLICIT_VR_LITTLE_ENDIAN
——UID_EXPLICIT_VR_BIG_ENDIAN
——UID_RLE_LOSSLESS
对于所有其他传输语法值,它将被忽略。如果设置,这将RGB图像数据转换为YCbCr,这是一个亮度(Y)和两个色度平面(CB和CR)。

返回

价值 意义
DICOM_SUCCESS 活动很成功。
> 0 发生错误。指返回代码

评论

该函数将数据集的传输语法转换为pszUID中指定的传输语法,维护数据集中的所有元素和值。

调用此函数后,之前对数据集中数据元素的所有引用都将不再有效。

方法发送C_STORE_REQ消息时,此函数特别有用L_DicomSendCStoreRequest函数。用户可以将数据集传输语法与SCP的传输语法相匹配。

如果这个函数返回错误DICOM_ERROR_WRITE,其中一个原因可能是您的系统缺少LEADTOOLS文件过滤器LFCMPU.DLL。具体来说,如果原始传输语法或新的传输语法是以下其中之一,则将返回此错误:

确保lfcpuu . dll与其他LEAD dll位于同一文件夹中。有关更多信息,请参阅应用程序中包含的文件

请注意:此函数不能用于编码不属于主要医疗SDK的DICOM传输语法(例如视频压缩支持),并且只能通过LEADTOOLS医疗模块

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

L_INT DicomChangeTransferSyntaxExample (L_VOID)L_UINT16 nRet;HDICOMDS = L_DicomCreateDS(NULL);//加载数据集nRet = l_dicomloadd (hDS,MAKE_IMAGE_PATH(TEXT(“Image1.dcm”)), 0);如果(nRet != DICOM_SUCCESS)L_DicomFreeDS (hDS);返回nRet;//将传输语法改为显式VR大端格式nRet = L_DicomChangeTransferSyntax(hDS, UID_EXPLICIT_VR_BIG_ENDIAN, 0,0);如果(nRet != DICOM_SUCCESS)L_DicomFreeDS (hDS);返回nRet;//保存新的数据集nRet = L_DicomSaveDS(hDS,MAKE_IMAGE_PATH(TEXT(“Result.dcm”)), 0);L_DicomFreeDS (hDS);返回nRet;
LEADTOOLS DICOM C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。