Python 检测图像中文本的旋转角度

Python 检测图像中文本的旋转角度,python,opencv,Python,Opencv,所以,我有一个带有文本的图像,它不允许我从中提取信息,所以我需要找到某种方法来旋转它 我尝试了很多图书馆和理论,但没有什么特别有效 OpenCV。 我将加入一个需要旋转的图像示例。 非常感谢 “” 我试过这个例子: import numpy as np import cv2 image = cv2.imread("test1.jpg") gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray = cv2.bitwise_not(gray) th

所以,我有一个带有文本的图像,它不允许我从中提取信息,所以我需要找到某种方法来旋转它

我尝试了很多图书馆和理论,但没有什么特别有效 OpenCV。 我将加入一个需要旋转的图像示例。 非常感谢

“”

我试过这个例子:

import numpy as np
import cv2

image = cv2.imread("test1.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.bitwise_not(gray)

thresh = cv2.threshold(gray, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

coords = np.column_stack(np.where(thresh > 0))
print coords
angle = cv2.minAreaRect(coords)[-1]
print angle 
if angle < -45:
    angle = -(90 + angle)
else:
    angle = -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)   


cv2.putText(rotated, "Angle: {:.2f} degrees".format(angle),(10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)

print("[INFO] angle: {:.3f}".format(angle))

您尝试过什么但没有成功?写下您尝试过的内容,然后我可以为您编写解决方案如果您愿意在类似Unix的环境中使用ImageMagick,我有一个textdeskew脚本,可以在我的网站上实现这一点。它使用FFT处理来查找文本行的方向。
from PIL import Image

from resizeimage import resizeimage

jpgfile = Image.open("test.jpg")

#size = jpgfile.size[0]/5 , jpgfile.size[1]/5

#cover = resizeimage.resize_cover(jpgfile, size)

#cover.show()

for i in range(0,360):
#a reviser
    rotated = jpgfile.rotate(i)
    rotated.save("out.jpg")
    image = cv2.imread("out.jpg")
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV)
#cv2.imshow('binary',thresh)
#cv2.waitKey(0)

    thresh_sum = thresh.sum(axis=1)
#thresh_sum.show

    a = []

    a = np.append(a,thresh_sum)
    variance = 0
    variance = np.var(thresh_sum,0)

    print(variance,i)

rotated.show()