我收到同事发来的“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"))
我们将不胜感激!
要将数据转换为无符号 16 位 (uint16),您可以使用
number uint16Type = ImageConstructDataType( "scalar", "uint", 0, 16 )
image.ImageChangeDataType( uint16Type )