# include“ltdic.h”
L_UINT16LDicomDS::SetVOILUT(uVOILUTIndex, pVOILUTAttributes, pLUTData, uDataSize,uFlags)
设置描述VOI LUT的属性。
要设置的VOI LUT的索引。根据DICOM标准,一个VOI LUT序列(0028,3010)下可以存在一个或多个项,使用此索引指定要更新的项。该索引从零开始。
指向包含要设置的VOI LUT属性的结构的指针。
指向存放要设置的“LUT数据”(0028,3006)的缓冲区的指针。这个指针不能为NULL。
由pLUTData指向的缓冲区大小不能为0。这个值应该至少等于pVOILUTAttributes->LUTDescriptor.uNumberOfEntries。
保留以备将来使用。通过0。
| 价值 | 意义 |
|---|---|
| 0 | 活动很成功。 |
| > 0 | 发生错误。指返回代码. |
在调用此函数之前,将pVOILUTAttributes->uStructSize初始化为sizeof(DICOMVOILUTATTRIBS),并初始化结构的所有成员。
输入缓冲区的大小至少应等于查找表中条目的数量。
根据DICOM标准pVOILUTAttributes->LUTDescriptor。如果查找表中的条目数为2^16,则uNumberOfEntries应该设置为0,但是在调用此函数时不应该这样做。这个函数将处理正确设置数据集中的值。
必需的dll和库
Win32, x64
此示例将向数据集中添加新的VOI LUT或替换现有的VOI LUT。
LDicomDS_SetVOILUTExample(LDicomDS &InDS, L_BOOL bAdd){L_INT nRet;DICOMVOILUTATTRIBS VOILUTAttribs ={0};L_UINT uVOILUTCount = 0;L_UINT16 *pVOILUTData = NULL;L_UINT uDataSize = 0;L_INT nLUTIndex;L_UINT uNewLUTIndex = 0;//记住设置每个结构的大小VOILUTAttribs。uStructSize =运算符(DICOMVOILUTATTRIBS);VOILUTAttribs.LUTDescriptor.uStructSize =运算符(DICOMLUTDESCRIPTOR);//获取文件中VOI LUT(s)的数量nRet = InDS。GetVOILUTCount (&uVOILUTCount);如果(nRet != DICOM_SUCCESS){返回nRet;}如果(uVOILUTCount > 0){//获取第一个VOI LUT的属性nRet = InDS。&VOILUTAttribs GetVOILUT (0,运算符(DICOMVOILUTATTRIBS), 0);如果(nRet != DICOM_SUCCESS){返回nRet;}uDataSize = VOILUTAttribs.LUTDescriptor.uNumberOfEntries;pVOILUTData = (L_UINT16*)malloc(uDataSize* .运算符(L_UINT16));如果(pVOILUTData !){返回DICOM_ERROR_MEMORY;}//获取LUT数据nRet = InDS。GetVOILUTData (0, pVOILUTData uDataSize 0);如果(nRet != DICOM_SUCCESS){免费(pVOILUTData);返回nRet;}//重新映射数据为(nLUTIndex = 0;nLUTIndex <= (L_INT)(uDataSize-1);nLUTIndex + +){pVOILUTData[nLUTIndex] = pVOILUTData[nLUTIndex]/2;}}其他的{定义我们自己的LUTvoilutattribs . lutdescriptor . nfirststoredpixelvaluemapping = 0;VOILUTAttribs.LUTDescriptor.uEntryBits = 16;VOILUTAttribs.LUTDescriptor.uNumberOfEntries = 0x10000;uDataSize = VOILUTAttribs.LUTDescriptor.uNumberOfEntries;pVOILUTData = (L_UINT16*)malloc(uDataSize* .运算符(L_UINT16));如果(pVOILUTData !){返回DICOM_ERROR_MEMORY;}memset (pVOILUTData 0 uDataSize *运算符(L_UINT16));为(nLUTIndex = 0;nLUTIndex <= (L_INT)(uDataSize-1);nLUTIndex + +){pVOILUTData[nLUTIndex] = (L_UINT16)nLUTIndex;}}uNewLUTIndex = uVOILUTCount;如果(bAdd !){//删除已有的LUTnRet = InDS。DeleteVOILUT (0);如果(nRet != DICOM_SUCCESS){免费(pVOILUTData);返回nRet;}uNewLUTIndex = 0;}//设置新的LUTnRet = InDS.SetVOILUT(uNewLUTIndex,&VOILUTAttribs,pVOILUTData,uDataSize,0);如果(nRet != DICOM_SUCCESS){免费(pVOILUTData);返回nRet;}如果(pVOILUTData){免费(pVOILUTData);}返回DICOM_SUCCESS;}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。
