我正在使用tesseract OCR识别视频帧。
我编写了一个程序,使用ffmpeg
来获取视频的所有主要帧,然后将它们(使用静态值)裁剪为文本的中心(例如,字幕可以是字幕)。
我还使用ImageMagick
和TextCleaner
脚本,它们像魔术一样提高了OCR的质量!
无论如何,有时我的视频质量不是很好,或者视频大小有点小,或者裁剪不是中心文本(因为值很大),而且OCR结果非常糟糕。
我的问题是:我怎样才能检测到有关作物的正确位置? 这样可以提高OCR的质量并获得更好的效果。
任何建议都将不胜感激。感谢。
答案 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
以下是两个结果:
另一种选择是减少颜色数量,应用对比度拉伸和(可选)阈值:
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
您可能还希望使用-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