使用LEADTOOLS的CMYK功能根据颜色从图像中去除特定部分

这篇博客讲述如何使用与AddCommand结合ColorSeparateCommand从图像去除一个特定的颜色。示例中的代码块能让黑色的表单以及文字从图像中删除,只留下图像的彩色文本。随后可用于屏蔽文本或用于OCR目的。

发布于 2017/11/08 00:00

这篇博客讲述如何使用与AddCommand结合ColorSeparateCommand从图像去除一个特定的颜色。示例中的代码块能让黑色的表单以及文字从图像中删除,只留下图像的彩色文本。随后可用于屏蔽文本或用于OCR目的。

注意ColorSeparateCommand产生输出RasterImage四页,依次为青、洋红、黄、黑。通过调用AddCommand除去最后(黑色)一页,只有其他几个颜色被添加,这个也可以被修改为不同的组合以保持或删除特定颜色。由于ColorSeparateCommand根据强度返回平面,因此生成的图像为白色,因此在保存输出之前使用InvertCommand创建黑白反转图像。

这里是使用的一些重要的RasterCommands的链接。

ColorSeparateCommand
https://www.leadtools.com/help/leadtools/v19/dh/pc/leadtools.imageprocessing.color~leadtools.imageprocessing.color.addcommand.html

private static void DoColorPlaneSeparation(string input)
      {
         string outPath = Path.GetDirectoryName(input);
         string outFile = Path.GetFileName(input);

         using (RasterCodecs codecs = new RasterCodecs())
         {
            RasterImage image = codecs.Load(input);
            ColorSeparateCommand csc = new ColorSeparateCommand(ColorSeparateCommandType.Cmyk);

            csc.Run(image);

            csc.DestinationImage.RemovePageAt(4);

            AddCommand ac = new AddCommand(AddCommandType.Add);
            ac.Run(csc.DestinationImage);

            InvertCommand ic = new InvertCommand();
            ic.Run(ac.DestinationImage);

            AutoBinarizeCommand abc = new AutoBinarizeCommand();
            abc.Run(ac.DestinationImage);

            string outputFile = Path.Combine(outPath, "output_" + outFile);
            codecs.Save(ac.DestinationImage, outputFile, image.OriginalFormat, image.BitsPerPixel);
         }
      }

 

下面是处理前后的图像对比

label

output_label

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态