将图像另存为未压缩的16位灰度TIFF文件

时间:2018-12-05 10:47:28

标签: c# image tiff grayscale

这是我第一次使用图像,我正在尝试将图像中的16位灰度tiff文件保存为Image,该文件应与所附图片中的1相似。

我尝试使用img.Save(".\\MyFile\\myImage.tif",ImageFormat.Tiff);,但结果是所附图片中的2。

我将保存更改为

EncoderParameters eps = new EncoderParameters(2);
eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth,24L);
eps.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression,(long)EncoderValue.CompressionNone);

//var ei = GetEncoderInfo(ImageFormat.Tiff);
var ei = GetEncoderInfo("image/tiff");
img.Save(".\\MyFile\\myImage.tif", ei, eps);

并且因为颜色深度不能为16,所以我只能设法从所附图片中获得结果3。 有没有一种方法可以在不使用其他库的情况下将图像另存为未压缩的16位灰度tiff文件?

Picture

1 个答案:

答案 0 :(得分:0)

像这样使用OpenCV:

cv::Mat rawData( height_, width_, CV_16UC1, (void*)pPicData_);
cv::imwrite(fileName_.toStdString().c_str(), rawData);