LDicomDS: SetImage

# include“Ltdic.h”

L_UINT16LDicomDS::SetImage(pElement, pBitmap, nCompression, nPhotometric, nBitsPerPixel, nQFactor, uFlags, pfnCallback, pUserData)

替换像素数据元素中的图像。

参数

pDICOMELEMENTpElement

指向DICOMELEMENT数据集中的结构。

pBITMAPHANDLEpBitmap

指向引用要设置的图像的位图句柄的指针。

L_INT32nCompression

值,该值指示要使用的压缩类型,该类型会影响调用函数时压缩图像的方式。可能取值为:

价值 意义
IMAGE_COMPRESSION_NONE [0x00]没有压缩。
IMAGE_COMPRESSION_RLE [0x01] RLE压缩。
IMAGE_COMPRESSION_JPEG_LOSSLESS [0x02] JPEG无损压缩。
IMAGE_COMPRESSION_JPEG_LOSSY [0x03] JPEG有损压缩。
IMAGE_COMPRESSION_J2K_LOSSLESS [0x06] JPEG 2000无损压缩。
IMAGE_COMPRESSION_J2K_LOSSY [0x07] JPEG 2000有损压缩。
IMAGE_COMPRESSION_MPEG2 [0x08]仅供内部使用。mpeg - 2压缩。用于在内部读取/写入DICOM文件LEADTOOLS医疗模块.有关这些过滤器的更多信息,请参阅LEAD DICOM阅读器而且首席DICOM作者
IMAGE_COMPRESSION_MPEG2_HD [0x09]内部使用。mpeg - 2压缩。用于在内部读取/写入DICOM文件LEADTOOLS医疗模块.有关这些过滤器的更多信息,请参阅LEAD DICOM阅读器而且首席DICOM作者

L_INT32nPhotometric

光度常数。可能取值为:

价值 意义
IMAGE_PHOTOMETRIC_MONOCHROME2 [0x01]每像素8或16位,灰度图像。
IMAGE_PHOTOMETRIC_PALETTE_COLOR [0x02]每像素8位,调色板彩色图像。
IMAGE_PHOTOMETRIC_RGB [0x03]每像素24位,RGB彩色图像。

L_INT32nBitsPerPixel

产生的位图像素深度。以下是有效值:

价值 意义
0 保持原始文件的像素深度(不进行转换)。
1 ~ 8 合成位图中每个像素的指定位。
12 在合成位图中,每像素12位。
16 在合成位图中,每像素16位。
24 合成位图中每像素24位。
32 在合成位图中每像素32位。

L_INT32nQFactor

质量因子(Q因子)是一个决定压缩过程中损失程度的数字。您可以设置一个从2到255的值,其中2是最高质量,255是最大压缩。

L_UINTuFlags

控制此函数行为的标志。可能取值为:

价值 意义
DICOM_SETIMAGE_AUTO_SAVE_OVERLAYS [0x0001]如果设置了,该函数将自动将与输入位图相关的覆盖插入到数据集中。
DICOM_SETIMAGE_AUTO_SET_VOI_LUT [0x0002]如果设置了,该函数将自动向数据集添加VOI LUT。
DICOM_SETIMAGE_MINIMIZE_JPEG_SIZE [0x0004]如果设置了,并且nCompression参数为IMAGE_COMPRESSION_JPEG_LOSSLESS或IMAGE_COMPRESSION_JPEG_LOSSY, JPEG压缩引擎将使用优化的霍夫曼表,这将导致更好的压缩,但速度较慢。
DICOM_SETIMAGE_MFG_OVERWRITE_SHARED [0x0008]该标志被忽略。
DICOM_SETIMAGE_MFG_VOI_LUT_PER_FRAME [0x0010]帧VOI LUT序列被添加到每帧功能组序列下。
DICOM_SETIMAGE_MFG_VOI_LUT_SHARED [0x0020]帧VOI LUT序列被添加到共享功能组序列下。
DICOM_SETIMAGE_MFG_MODALITY_LUT_PER_FRAME [0x0040]像素值转换序列添加在每帧功能组序列下。
DICOM_SETIMAGE_MFG_MODALITY_LUT_SHARED [0x0080]像素值转换序列添加在共享功能组序列下。
DICOM_SETIMAGE_YBR_FULL [0x00000100]此标志仅对彩色图像有效,如果nCompression是以下之一:

对于所有其他传输语法值,它将被忽略。如果设置,这将RGB图像数据转换为YCbCr,这是一个亮度(Y)和两个色度平面(CB和CR)。| | DICOM_SETIMAGE_OPTIMIZED_MEMORY | [0x00000200]如果设置了,该函数将尝试节省内存使用并使用磁盘空间。|

FILESAVECALLBACKpfnCallback

用于额外处理的可选回调函数。

回调函数必须遵循中描述的函数原型FILESAVECALLBACK函数。

L_VOID* pUserData

可用于传递回调函数所需的一个或多个附加参数的空指针。
要使用此特性,请为变量赋值或创建包含所需字段的结构。然后,在这个参数中,传递变量或结构的地址,将其强制转换为L_VOID *。回调函数在自己的pUserData形参中接收地址,可以将其转换为适当数据类型的指针以访问变量或结构。
如果不需要附加参数,则可以在此参数中传递NULL。

返回

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

评论

这个函数用pBitmap引用的图像替换像素数据元素中的所有图像。

大多数DICOM文件只有一个TAG_PIXEL_DATA类型的数据元素。因此,在大多数情况下,您可以将pElement设置为NULL,因为该函数将自动替换文件中唯一像素数据元素的图像。如果pElement不是NULL,它必须指向像素数据元素本身。

如果DICOM文件为CLASS_BASIC_DIRECTORY,则该文件可能包含多个像素数据元素。在这种情况下,您必须在pElement中指定图像将被替换的像素数据元素。

如果您希望仅替换像素数据元素中的一个图像,则必须使用LDicomDS: DeleteImage而且LDicomDS: InsertImage

有关可能的压缩、光度、位像素和质量因子组合的表,请参阅压缩表

有关使用jpeg2000压缩时的更多选项,请参阅LDicomDS: SetJ2KOptions

该函数将插入、删除或更新以下一个或多个元素:

标签 名字
(7 fe0, 0010) 像素数据
(0002, 0010) 传输语法UID
(0028, 0101) 位存储
(0028, 0100) 比特分配
(0028, 0102) 高一些
(0028, 0103) 像素表示
(0028, 0010)
(0028, 0011)
(0028, 0002) 每像素样本
(0028, 0006) 平面配置
(0028, 0004) 光度解释
(0028, 0106) 最小图像像素值
(0028, 0107) 最大图像像素值
(0028, 1101) 红色调色板颜色查找表描述符
(0028, 1102) 绿色调色板颜色查找表描述符
(0028, 1103) 蓝色调色板颜色查找表描述符
(0028, 1201) 红色调色板颜色查找表数据
(0028, 1202) 绿色调色板颜色查找表数据
(0028, 1203) 蓝色调色板颜色查找表数据
(0028, 1199) 调色板颜色查找表UID
(0028, 1052) 重新调节拦截
(0028, 1053) 重新调节斜率
(0028, 1054) 重新调节类型
(0028, 1221) 分段红色调色板颜色查找表数据
(0028, 1222) 分段绿色调色板颜色查找表数据
(0028, 1223) 分段蓝色调色板颜色查找表数据
(0028, 3010) VOI LUT序列
(0028, 1050) 窗口中心
(0028, 1051) 窗口的宽度
(0028, 1055) 窗口中心和宽度说明
(0028, 0008) 帧数
(0054, 0070) 时隙矢量
(5200, 9229) 共享官能团序列
(5200, 9230) 每帧功能组序列

如果添加了共享功能组序列元素或每帧功能组序列元素,则可以添加包含(0028,9132)帧VOI LUT序列元素或(0028,9145)像素值转换序列元素的项目子元素。

帧VOI LUT序列子元素

标签 名字
(0028, 1050) 窗口中心
(0028, 1051) 窗口的宽度
(0028, 1055) 窗口中心和宽度说明

(0028,9145)像素值转换序列子元素

标签 名字
(0028, 1052) 重新调节拦截
(0028, 1053) 重新调节斜率
(0028, 1054) 重新调节类型

这个函数不受各种DICOM IOD类所施加的像素数据限制的影响,例如,这个函数将允许用户将彩色图像插入到“数字x射线图像存储”数据集中。

这个函数总是会插入一个“帧数”(0028,0008)元素并设置它的值。

多帧功能组模块可以具有共享功能组序列项和/或每帧功能组序列项。这些项中的任何一个都可能具有像素值转换序列(0028,9145)项,或帧VOI LUT序列(0028,9132)项。

当调用函数[LDicomDS:SetImage或。LDicomDS:使得, 5个DICOM_SETIMAGE_MFG替换像素值转换序列或帧VOI LUT序列中的现有信息。

以及任何现有的共享功能组序列项和每帧功能组序列项将被删除。

任何新的序列都被放置在标志所指示的序列中(每帧功能组序列或共享功能组序列)。

有关多帧功能组以及如何使用DICOM_SET_IMAGE_MFG标志的详细讨论,请参阅主题多框架官能团

请注意

DICOM_SETIMAGE_MFG_VOI_LUT_PER_FRAME不能与DICOM_SETIMAGE_MFG_VOI_LUT_SHARED组合使用。

DICOM_SETIMAGE_MFG_MODALITY_LUT_PER_FRAME不能与DICOM_SETIMAGE_MFG_MODALITY_LUT_SHARED组合使用。

注意,nPhotometric的唯一有效值是:

忽略所有其他值。

nPhotometric参数用于指示数据图像数据将如何保存:灰色、彩色或托盘。nPhotometric参数不一定是存储在结果DICOM数据集中的Photometric Interpretation的最终值。根据压缩类型、标志和QFactor自动设置DICOM数据集中生成的光度解释。下表给出了基于不同输入参数的DICOM数据集光度解释的示例:

nCompression nPhotometric uFlags
IMAGE_COMPRESSION_NONE IMAGE_PHOTOMETRIC_MONOCHROME2 0 0 MONOCHROME2
IMAGE_COMPRESSION_NONE IMAGE_PHOTOMETRIC_RGB 0 0 RGB
IMAGE_COMPRESSION_RLE IMAGE_PHOTOMETRIC_RGB DICOM_SETIMAGE_YBR_FULL 0 YBR_FULL
IMAGE_COMPRESSION_JPEG_LOSSY IMAGE_PHOTOMETRIC_RGB 0 40 YBR_FULL_422
IMAGE_COMPRESSION_JPEG_LOSSY IMAGE_PHOTOMETRIC_RGB 0 2 YBR_FULL
IMAGE_COMPRESSION_JPEG_LOSSLESS IMAGE_PHOTOMETRIC_RGB 0 0 RGB
IMAGE_COMPRESSION_J2K_LOSSLESS IMAGE_PHOTOMETRIC_RGB 0 0 YBR_RCT
IMAGE_COMPRESSION_J2K_LOSSY IMAGE_PHOTOMETRIC_RGB 0 0 YBR_ICT

笔记

必需的dll和库

平台

Win32, x64

另请参阅

功能

主题

例子

本示例在Data Set中设置一个图像。

LDicomDS_SetImageExample(pBITMAPHANDLE pBitmap)L_INT nRet;LDicomDS * pDS;pDICOMELEMENT pElement;pDS =LDicomDS(空);nRet = pDS-> loadd (MAKE_IMAGE_PATH(TEXT(“image1.dcm”)), 0);如果(nRet != DICOM_SUCCESS)返回nRet;pElement = pDS->FindFirstElement(NULL, TAG_PIXEL_DATA, FALSE);如果(pElement != NULL)nRet = pDS->SetImage(pElement, pBitmap, IMAGE_COMPRESSION_NONE,image_photometric_monochrome1,0,0, dicom_setimage_auto_set_voi_lut, null, null);如果(nRet != DICOM_SUCCESS)返回nRet;删除pDS;返回DICOM_SUCCESS;

LEADTOOLS DICOM c++类库帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。