Php Tesseract OCR:获取文本坐标并提高最终OCR的视频帧质量
我正在使用tesseract OCR对视频帧进行文本识别 我编写了一个程序,使用Php Tesseract OCR:获取文本坐标并提高最终OCR的视频帧质量,php,imagemagick,ocr,tesseract,Php,Imagemagick,Ocr,Tesseract,我正在使用tesseract OCR对视频帧进行文本识别 我编写了一个程序,使用ffmpeg获取视频的所有主帧,并裁剪它们(使用静态值)以使文本居中(例如,字幕) 我还使用ImageMagick和TextCleaner脚本,它们像魔术一样提高了OCR的质量 不管怎么说,有时候我的视频质量不太好,或者视频大小有点小,或者裁剪的文本不居中(因为值是staitc),OCR结果非常糟糕 我的问题是:如何检测文本在中的正确位置以进行性能裁剪? 这将提高OCR的质量并获得更好的结果 如有任何建议,将不胜感激
ffmpeg
获取视频的所有主帧,并裁剪它们(使用静态值)以使文本居中(例如,字幕)
我还使用ImageMagick
和TextCleaner
脚本,它们像魔术一样提高了OCR的质量
不管怎么说,有时候我的视频质量不太好,或者视频大小有点小,或者裁剪的文本不居中(因为值是staitc),OCR结果非常糟糕
我的问题是:如何检测文本在中的正确位置以进行性能裁剪?
这将提高OCR的质量并获得更好的结果
如有任何建议,将不胜感激。谢谢。您可以尝试使用边缘检测,也可以结合其他方法。像这样(纯粹的边缘检测): 或: 以下是两个结果: 另一个选项是减少颜色数量,应用对比度拉伸和(可选)阈值:
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
。它实现了“canny”边缘检测算法,自版本6.8.9-0起出现在ImageMagick中。将其与-对比度拉伸
和-色彩空间灰色
结合使用:
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
您可以添加(链接到)两个帧的样本:一个“好”,一个“坏”(需要检测文本位置)?嗨,文本位置不一样:例如,在本文中,文本是上下的,分辨率不好。否则,另一个分辨率更大,效果更好。另一个小例子,你可以在这另一个。非常感谢。如果文本始终位于彩色框中,这将是一个重要的细节。如果盒子总是更蓝。我试过你的建议,这种方法不能改善我的结果,但我不知道,+1!非常感谢,我会用它做一些测试。
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
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