You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于OpenCV的图像文本检测脚本优化及任意方向检测方法咨询

任意方向文本检测识别解决方案

现有代码问题排查

  • 未加入文本方向检测与校正逻辑,Tesseract默认仅支持识别水平正向文本,旋转/倾斜的文本无法正确识别
  • 固定阈值二值化适配性差,不同亮度的图像容易丢失文本特征
  • 未做文本区域定位,直接将整张含大量干扰的图像输入识别模型,准确率极低

方案1:基于Tesseract优化,支持0/90/180/270度旋转文本检测

你可以启用Tesseract自带的方向检测能力,配合OpenCV旋转校正,修改后代码如下:

import cv2
import pytesseract
import numpy as np
from pytesseract import Output

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract'

def rotate_image(image, angle):
    h, w = image.shape[:2]
    center = (w // 2, h // 2)
    M = cv2.getRotationMatrix2D(center, angle, 1.0)
    rotated = cv2.warpAffine(image, M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
    return rotated

img = cv2.imread('your_image_path.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 自适应阈值处理,适配不同亮度
thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,11,2)

# 检测文本方向
osd = pytesseract.image_to_osd(thresh, output_type=Output.DICT)
rotate_angle = osd['rotate']
corrected = rotate_image(thresh, rotate_angle)

# 识别文本及位置,支持多行多文本
d = pytesseract.image_to_data(corrected, output_type=Output.DICT)
n_boxes = len(d['text'])
result_img = rotate_image(img.copy(), rotate_angle)
for i in range(n_boxes):
    if int(d['conf'][i]) > 60: # 只保留置信度高于60的结果
        (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i])
        cv2.rectangle(result_img, (x, y), (x + w, y + h), (0, 255, 0), 2)
        print(f"文本内容:{d['text'][i]},位置:({x},{y},{w},{h})")

cv2.imshow("校正后识别结果", result_img)
cv2.waitKey(0)

注意:使用该方案需要你安装Tesseract时勾选了OSD(方向和脚本检测)组件。

方案2:支持任意角度倾斜文本检测

如果需要识别任意角度倾斜、甚至是弯曲的文本,推荐使用预训练的文本检测模型搭配识别引擎:

  • 可以调用OpenCV自带的EAST文本检测模型,先定位所有任意方向的文本框,再对每个文本框单独做校正后送Tesseract识别
  • 也可以直接使用PaddleOCR等端到端OCR工具,内置支持任意方向文本检测识别,无需自己做预处理和校正逻辑,开箱即可获取文本内容和对应坐标。

内容的提问来源于stack exchange,提问作者Abdo Abdelaziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 21:06:04