火山引擎OCR要求图片旋转角度不超过±15°,否则识别率骤降;需人工或程序预处理纠偏,其服务不支持自动纠偏。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

火山引擎OCR服务在处理旋转角度超过±15°的图片时,会因文字方向失准导致识别率断崖式下降,尤其对发票、扫描合同、手机翻拍证件等常见倾斜素材极为敏感。必须在调用API前完成定向校正,否则返回结果中大量字符错位、漏字甚至整行丢失。
判断图片是否需要旋转校正
打开图片后,用鼠标拖选任意一行文字,观察选区框四边是否与文字基线基本平行。若明显呈斜向或“倒八字”状,说明存在旋转偏移;也可用画图工具打开→按Ctrl+R显示标尺→目测文字与水平线夹角是否大于肉眼可辨的轻微倾斜(约3°以内可忽略)。
注意:火山引擎OCR不内置自动纠偏功能,【所有倾斜超限图片必须人工或程序预处理】,直接上传将得到不可用结果。
手动旋转校正(适用于单张/少量图片)
方法一:使用Windows自带“画图”工具
右键图片→“编辑”→顶部菜单栏点“旋转”→选择“向右旋转90度”或“向左旋转90度”→若为小角度倾斜(如5°~15°),则点“旋转”→“自定义”→输入负值(如-7)表示逆时针转7度→点击“确定”→按Ctrl+S保存。
方法二:用Photoshop或Canva等专业工具
导入图片→选择“图像”→“图像旋转”→“任意角度”→勾选“预览”,拖动角度滑块直至文字基线与标尺重合→确认后导出为PNG或JPG格式。
批量自动纠偏(Python脚本实现)
第一步:安装依赖库
执行 pip install opencv-python numpy matplotlib 在终端中运行。
第二步:准备待处理图片文件夹,确保所有图片均为.jpg或.png格式,无中文路径。
第三步:复制以下代码到文本编辑器,保存为 rotate_fix.py:
import cv2
import numpy as np
import os
def deskew_image(image_path, output_path):
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
coords = np.column_stack(np.where(thresh > 0))
if len(coords) == 0: return False
angle = cv2.minAreaRect(coords)[-1]
if angle else: angle = -angle
center = (img.shape[1] // 2, img.shape[0] // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
cv2.imwrite(output_path, rotated)
return True
for f in os.listdir('.'): if f.lower().endswith(('.jpg','.jpeg','.png')): deskew_image(f, 'fixed_' + f)
第四步:将该脚本与待处理图片放在同一文件夹,双击运行或在命令行中执行 python rotate_fix.py →脚本会在同目录生成带 fixed_ 前缀的已校正图片。











