python实现所有倾斜图像矫正代码
时间: 2023-11-17 08:04:14 浏览: 163
以下是一个使用OpenCV库实现图像倾斜矫正的Python代码示例:
```python
import cv2
import numpy as np
def deskew(image):
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))
angle = cv2.minAreaRect(coords)[-1]
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)
return rotated
# 读取图像
image = cv2.imread("input.jpg")
# 进行倾斜矫正
deskewed_image = deskew(image)
# 显示结果
cv2.imshow("Original Image", image)
cv2.imshow("Deskewed Image", deskewed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请确保已经安装了OpenCV库,并将要矫正的图像命名为"input.jpg"并与代码文件放在同一目录下。运行代码后,原始图像和矫正后的图像将会显示出来。
注意:这只是一个简单的示例,对于不同的图像可能需要调整参数或使用更复杂的算法来实现更好的倾斜矫正效果。
阅读全文