【发布时间】:2026-02-03 13:00:01
【问题描述】:
对于 OCR 引擎,我需要为 OCR 引擎提供带有 CCITT4 压缩的 TIFF 文件。 我们的扫描仪输出带有 JPEG 压缩的 TIFF 文件。我想使用 System.Drawing.Imaging 用 C# 转换这些文件。
这会导致图像出现大量噪点。如何降低噪音?
我的代码:
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;
【问题讨论】:
-
原始JPEG有噪声还是转换引入的噪声?一个简单的中值过滤器可能会做得很好。
-
我的猜测是你得到了一个从 JPEG 转换为二进制图像格式的扩散算法。您需要一个阈值或分割算法。发布编码器的所有可能参数。
标签: c# compression noise