上一篇博客讲述了使用LEADTOOLS的CMYK功能根据颜色从图像中去除特定部分
这篇文章建立在此之上,演示如何通过使用BalanceColorsCommand来删除一个特定的颜色。
这是需要处理的输入图像,各种颜色的文本。 前面的例子演示了删除黑色文本。 在这里,底部的红色文字也会被包括到到黑色的平面,所以它也会被删除掉。
此语法将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);
下图为处理后的效果,有效地去除了红色色调。剩余的图像青色的
可以使用相同的过程来分离颜色平面,然后使用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。
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。
葡萄城热门产品
活字格
打通现有软件,快速定制面向未来的个性化应用
SpreadJS
可嵌入您系统的在线Excel的纯前端表格控件
Wyn商业智能
可与企业自有系统深度集成,增强数据分析的 BI 工具