如何使用LEADTOOLS 去除图片中特定的颜色

这篇博客演示如何通过使用BalanceColorsCommand来删除一个特定的颜色

发布于 2017/11/08 00:00

行业动态

上一篇博客讲述了使用LEADTOOLS的CMYK功能根据颜色从图像中去除特定部分

这篇文章建立在此之上,演示如何通过使用BalanceColorsCommand来删除一个特定的颜色。

这是需要处理的输入图像,各种颜色的文本。 前面的例子演示了删除黑色文本。 在这里,底部的红色文字也会被包括到到黑色的平面,所以它也会被删除掉。

resource (1)

此语法将BalanceColorsCommand应用于红色的参数没有权重,而绿色和蓝色的参数具有标准的权重。

    RasterCodecs codecs = new RasterCodecs();
    RasterImage image = codecs.Load(imagePath);

    BalanceColorsCommand bcc = new BalanceColorsCommand(
       new BalanceColorCommandFactor(0, 0, 0), // red
       new BalanceColorCommandFactor(0, 1, 0), // green
       new BalanceColorCommandFactor(0, 0, 1)); // blue
    bcc.Run(image);

下图为处理后的效果,有效地去除了红色色调。剩余的图像青色的

resource (2)

可以使用相同的过程来分离颜色平面,然后使用AddCommand重新组合它们。 但是,如果青色平面实际上是黑色平面的反色,则在执行AddOperation之前需要将其去除。

ColorSeparateCommand csc = new ColorSeparateCommand(ColorSeparateCommandType.Cmyk);
    csc.Run(image);

    csc.DestinationImage.RemovePageAt(4); // page 4 is black plane
    csc.DestinationImage.RemovePageAt(1); // page 1 is cyan plane

    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);

这是输出的最终效果图片,黑色文本和红色文本以编程方式被删除,可以最后用于OCR。

resource (3)

关于葡萄城

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

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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