另存为 tiff - 16 位无符号

问题描述 投票:0回答:1

我收到同事发来的“integer 2 unsigned tiff”图像。它们在“Paint”和 DM 中看起来都很好。 经过DM中的数据处理后,我得到了真实的图像。 处理完范围后,ConvertToShort() 创建“整数 2 签名”图像。但任何创建正确 tiff 文件(16 位未签名)的尝试都会失败。
我使用 ImageGetOrCreateImageDocument() ,然后使用 ImageDocumentSaveToFile() 将标签组“另存为灰度”、“包含注释”和“另存为灰度”全部设置为“1”。 DM 与 Paint 中生成的图像看起来非常不同。
示例代码:

void my_SaveAsTiff( image tbdat, string path)
{   //  Default values for Tif:  keep actual size and burn in annotations
    number saveGreyScale = 1    // Convert to grey scale
    number includeAnno = 1      // "burn in" annotations on the display 
    number fullScale = 1        // Use data size not display-size of image
    tagGroup tg = GetPersistentTagGroup().TagGroupGetOrCreateTagGroup( "Private:Save Display" )
    tg.TagGroupSetTagAsBoolean( "Save As Grey Scale" , saveGreyScale )
    tg.TagGroupSetTagAsBoolean( "Include Annotation" , includeAnno )
    tg.TagGroupSetTagAsBoolean( "Full Scale" , fullScale )
        
    imageDocument doc = tbdat.ImageGetOrCreateImageDocument()
    doc.ImageDocumentSaveToFile( "TIFF Format", path, 1)        //  "0"... Save as shown - but full resolution (via 'includeAnno')
}   

string path = "C:/...................."

out = realImage("temp", 4, 2048, 768)   
out = 100 + 20.9*icol 
out.ConvertToShort()    //  
out.showImage()

my_SaveAsTiff( out, pathConcatenate(path, "temp"))

我们将不胜感激!

tiff unsigned 16-bit dm-script
1个回答
0
投票

要将数据转换为无符号 16 位 (uint16),您可以使用

number uint16Type = ImageConstructDataType( "scalar", "uint", 0, 16 )
image.ImageChangeDataType( uint16Type )
© www.soinside.com 2019 - 2024. All rights reserved.