Feed tesseract (Tess4J) from ImageMagick (JMagick)



我正在尝试创建一个Java程序,该程序将OCR多种格式的图像。图像不能直接从文件中读取,因为它们的字节要通过网络发送。

我目前能够使用ImageIO读取图像像素的原始字节。然而,我想支持ImageMagick支持的所有格式,所以使用JMagick读取图像,然后将原始字节提供给Tess4J。我不知道该怎么办。我发现这个功能可以给我字节:

PixelPacket[] MagickImage.getColormap();

但我必须编写一种特殊的方法,将获得的PixelPacket对象转换为连续的字节。我可以这么做,但也许还有更好的方法?例如,可能有一些非常原始的文件格式(甚至超过http://en.wikipedia.org/wiki/BMP_file_format#mediaviewer/File:BMPfileFormat.png)我可以在这个方法中使用的例子:

byte[] imageToBlob(ImageInfo imageInfo) ?

imageInfo对象必须指向这个原始格式,然后我可以从bytes数组中剪切出像素信息。

这是正确的方法吗?还是我应该使用更简单(更快/更健壮)的方法?

编辑

我发现我脑海中的格式叫做PNM。

如果使用JMagick,我认为使用dispatchImage方法就是您想要的。它将允许您直接访问图像的原始像素。不需要文件格式。

有关示例,请参阅我的MagickUtil类,或者如果您愿意,可以使用该类。

我还为JMagick支持的许多相同格式编写了纯Java ImageIO插件,这些插件可能很有用。你可以在我的GitHub存储库中找到它们。

最新更新