C# 将 TIFF JPEG 压缩转换为 TIFF CCITT4 压缩会产生很多噪音。

3
为了一个OCR引擎,我需要使用CCITT4压缩的TIFF文件来输入OCR引擎。 我们的扫描仪输出带有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;

2
原始的JPEG图像是否有噪点,还是由于转换过程中引入了噪点?简单的中值滤波器可能会起到很好的作用。 - user287466
我的猜测是你正在使用扩散算法将JPEG转换为二进制图像格式。你需要一个阈值或分割算法。请发布编码器的所有可能参数。 - Brannon
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接