Swift 3 - 我应该使用哪种像素格式来获得最佳的 Tessecract 文本识别?

Swift 3 - Which pixel format type do I use for best Tessecract text recognition?

我正在使用 Swift 3 构建一个移动应用程序,允许用户拍照并对生成的图像进行 运行 Tesseract OCR。

据此:https://developer.apple.com/reference/corevideo/cvpixelformatdescription/1563591-pixel_format_types

我有很多可能的像素格式类型,可以用来格式化在我的 iPhone 7 上拍摄的像素。对于所有这些术语的开头,我有点迷茫但是有没有人对哪种格式最有可能改进 Tesseract 文本识别提出建议?

kCVPixelFormatType_24RGB, kCVPixelFormatType_24BGR, kCVPixelFormatType_32ARGB, kCVPixelFormatType_32BGRA, kCVPixelFormatType_32ABGR, kCVPixelFormatType_32RGBA 所有这些都是最好的选择,通常也是最常见的选择(即:24 位位图、24 位 PNG、32 位位图、32 位 PNG 等) .

基本上,24位只包含R、G、B、像素分量,完全没有alpha通道。 32 位包含一个 alpha 通道,因此将使用 R、G、B、A 组件。通常 24 位在 Tesseract 上工作得很好,而 32 位在 alpha 通道透明时工作得很好(所有字节为 0x0 或 0xFF)。这相当于使用BMP或PNG格式。

注:以上只是格式。理想情况下,您的图像也需要相当不错的质量(最好的通常是白色文本、黑色背景或黑色文本、白色背景或文本和背景之间的一些强烈对比)。这也取决于图像(不仅仅是格式)。

至于捕获设置:AVCapturePhotoSettings,分配一个将为您提供默认设置。您可以创建自己的使用:

https://developer.apple.com/reference/avfoundation/avcapturephotosettings/1648673-photosettingswithformat?changes=latest_minor&language=objc

它告诉你传递什么参数。它还可以让您确定它是否应该是高分辨率、实时照片等。您可以在此处查看更多信息:https://developer.apple.com/reference/avfoundation/avcapturephotosettings?changes=latest_minor&language=objc

availablePhotoCodecTypes returns JPEG, PNG, BMP, etc. 只是不同格式支持压缩捕获。当您捕获 RAW 或 BMP 时,它是未压缩的。例如,BMP 压缩使用 RLE(运行 长度编码)。 PNG 使用 zlib 进行压缩,JPEG 也是如此。

对于视频,可能 return MP4、MPEG-4 等。请参阅:https://www.thedroidsonroids.com/blog/ios/whats-new-avfoundation-ios-10/ 示例。