通过oepncv把略微倾斜的文字纠正水平,单行文字
时间: 2023-05-31 11:03:45 浏览: 55
可以使用以下步骤来实现:
1. 首先,读取输入的图像,并将其转换为灰度图像。
2. 使用Canny算法进行边缘检测,得到图像的边缘。
3. 使用HoughLinesP函数检测直线,并将检测到的直线绘制在图像上。
4. 计算检测到的直线的角度平均值,将其作为旋转角度。
5. 使用cv2.getRotationMatrix2D函数创建旋转矩阵,并使用cv2.warpAffine函数将图像旋转到水平方向。
6. 在旋转后的图像中检测文字,并保存结果。
以下是示例代码:
```python
import cv2
import numpy as np
# 读取输入的图像
img = cv2.imread("input.jpg")
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Canny算法进行边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 检测直线
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 100, minLineLength=100, maxLineGap=10)
# 绘制检测到的直线
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)
# 计算直线角度平均值
angles = []
for line in lines:
x1, y1, x2, y2 = line[0]
angle = np.arctan2(y2-y1, x2-x1) * 180 / np.pi
angles.append(angle)
mean_angle = np.mean(angles)
# 创建旋转矩阵
center = (img.shape[1]//2, img.shape[0]//2)
M = cv2.getRotationMatrix2D(center, -mean_angle, 1)
# 旋转图像
rotated = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
# 在旋转后的图像中检测文字
gray = cv2.cvtColor(rotated, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
# 保存结果
cv2.imwrite("output.jpg", rotated)
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)