Tesseract OCR:获取文本的坐标并提高最终OCR视频帧的质量

时间:2014-12-04 09:36:06

标签: php imagemagick ocr tesseract

我正在使用tesseract OCR识别视频帧。

我编写了一个程序,使用ffmpeg来获取视频的所有主要帧,然后将它们(使用静态值)裁剪为文本的中心(例如,字幕可以是字幕)。

我还使用ImageMagickTextCleaner脚本,它们像魔术一样提高了OCR的质量!

无论如何,有时我的视频质量不是很好,或者视频大小有点小,或者裁剪不是中心文本(因为值很大),而且OCR结果非常糟糕。

我的问题是:我怎样才能检测到有关作物的正确位置? 这样可以提高OCR的质量并获得更好的效果。

任何建议都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用边缘检测,也可以与其他方法结合使用。像这样(纯边缘检测):

convert            \
  big.jpg          \
  \(               \
      big.jpg -colorspace gray -edge 8 -negate \
  \)               \
 +append           \
 -resize 50%       \
  big-edge-8.png

或:

convert            \
  big.jpg          \
  \(               \
      big.jpg -colorspace gray -edge 25 -negate \
  \)               \
 +append           \
 -resize 50%       \
  big-edge-25.png

以下是两个结果:

big-edge-8.png

big-edge-25.png

另一种选择是减少颜色数量,应用对比度拉伸和(可选)阈值:

convert                 \
   big.jpg              \
  -colors 400           \
  -contrast-stretch 25% \
   colors-400-contraststretch-25.png

convert                 \
   big.jpg              \
  -colors 400           \
  -contrast-stretch 25% \
  -threshold 50%        \
   colors-400-contraststretch-25-threshold-50.png

colors-400-contraststretch-25+threshold-50.png

更新:' canny'边缘检测

您可能还希望使用-canny。它实现了' canny' 边缘检测算法,自版本6.8.9-0以来一直存在于ImageMagick中。将其与-contrast-stretch-colorspace gray

结合使用
convert big.jpg         \
  -colorspace gray      \
  -contrast-stretch 45% \
  -canny 0x1+10%+30%    \
   canny1.png

convert big.jpg         \
  -colorspace gray      \
  -contrast-stretch 45% \
  -canny 0x2+10%+30%    \
   canny2.png

canny1+2.png