本篇教程演示Leadtools中如何通过使用BalanceColorsCommand来删除一个特定的颜色。
本篇教程演示Leadtools中如何通过使用BalanceColorsCommand来删除一个特定的颜色。
Leadtools 19总套包下载>>> 这是需要处理的输入图像,各种颜色的文本。 在这里,底部的红色文字也会被包括到到黑色的平面,所以它也会被删除掉。

此语法将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。


标签:图像处理
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!