Python 检测图像中文本的旋转角度
所以,我有一个带有文本的图像,它不允许我从中提取信息,所以我需要找到某种方法来旋转它 我尝试了很多图书馆和理论,但没有什么特别有效 OpenCV。 我将加入一个需要旋转的图像示例。 非常感谢 “” 我试过这个例子: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
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()