flowchart TD
start[开始]
step1[导入opencv库]
step2[读取图片]
step3[灰度化处理]
step4[检测边缘]
step5[查找轮廓]
step6[计算最大轮廓]
step7[计算最大轮廓的旋转角度]
step8[旋转图片]
step9[展示结果]
end[结束]
start --> step1
step1 --> step2
step2 --> step3
step3 --> step4
step4 --> step5
step5 --> step6
step6 --> step7
step7 --> step8
step8 --> step9
step9 --> end
Opencv实现图片摆正python教程
简介
本教程旨在帮助开发者学会使用Opencv库实现图片摆正的功能。通过本教程,你将学会如何将图片自动旋转至正常方向。
步骤
以下是实现图片摆正的具体步骤:
步骤 | 操作 |
---|---|
1 | 导入opencv库 |
2 | 读取图片 |
3 | 灰度化处理 |
4 | 检测边缘 |
5 | 查找轮廓 |
6 | 计算最大轮廓 |
7 | 计算最大轮廓的旋转角度 |
8 | 旋转图片 |
9 | 展示结果 |
代码实现
# 导入opencv库
import cv2
# 读取图片
image = cv2.imread('input.jpg')
# 灰度化处理
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 检测边缘
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 查找轮廓
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算最大轮廓
max_contour = max(contours, key=cv2.contourArea)
# 计算最大轮廓的旋转角度
rect = cv2.minAreaRect(max_contour)
angle = rect[2]
# 旋转图片
(h, w) = image.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated_image = cv2.warpAffine(image, M, (w, h), flags=cv2.INTER_CUBIC)
# 展示结果
cv2.imshow("Rotated Image", rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
结论
通过本教程,你学会了如何使用Opencv库实现图片摆正的功能。希望对你有所帮助,继续加油!