gpt4 book ai didi

C# 将 TIFF JPEG 压缩转换为 TIFF CompressionCCITT4 会产生大量噪音

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:58 28 4
gpt4 key购买 nike

对于 OCR 引擎,我需要为 OCR 引擎提供带有 CCITT4 压缩的 TIFF 文件。我们的扫描仪输出 JPEG 压缩的 TIFF 文件。我想用 C# 转换这些文件,使用 System.Drawing.Imaging。

这会导致图像出现大量噪点。如何降低噪音?

我的代码:

        List<byte[]> fRet = new List<byte[]>();
ImageCodecInfo fImageCodecInfo = GetEncoderInfo("image/tiff");
EncoderParameters fEncoderParameters = new EncoderParameters(3);
fEncoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)EncoderValue.CompressionCCITT4);
fEncoderParameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.ScanMethod, (int)EncoderValue.ScanMethodNonInterlaced);
fEncoderParameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod, (int)EncoderValue.RenderNonProgressive);

//

Image fOrgTiff = Image.FromStream(pInputTiff);
Guid objGuid = fOrgTiff.FrameDimensionsList[0];
FrameDimension objDimension = new FrameDimension(objGuid);
int frameCount = fOrgTiff.GetFrameCount(objDimension);
for (int i = 0; i < frameCount; i++)
{
MemoryStream ms = new MemoryStream();
fOrgTiff.SelectActiveFrame(objDimension, i);
fOrgTiff.Save(ms, fImageCodecInfo, fEncoderParameters);
ms.Position = 0;
fRet.Add(ms.GetBuffer());
}
return fRet;

最佳答案

作为Brannon说,Ccitt4 是一种二进制格式(黑/白),因此您的图像会自动二值化。文档说:“The Ccitt3, Ccitt4, and Rle require that the PixelFormat value be set to BlackWhite. Setting the PixelFormat to any other value resets the Compression property value to Default.

您可以尝试通过选择更好的二值化阈值来降低噪声。您可以查看开源图像库提供的算法,如 AForge.NetEmguCV .

关于C# 将 TIFF JPEG 压缩转换为 TIFF CompressionCCITT4 会产生大量噪音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336644/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com