#OpenCV 快速入门:图像读取、绘制、几何变换
📂 所属阶段:第一阶段 — 图像处理基石(传统 CV 篇)
🔗 相关章节:CV 概览与数字图像基础 · 图像增强与滤波
#1. OpenCV 安装与基础
pip install opencv-python opencv-contrib-python#2. 图像读取与显示
import cv2
import numpy as np
# 读取图像
img = cv2.imread("photo.jpg")
# 显示图像
cv2.imshow("Image", img)
cv2.waitKey(0) # 等待按键
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite("output.jpg", img)
# 获取图像信息
print(f"形状: {img.shape}") # (高, 宽, 通道数)
print(f"数据类型: {img.dtype}") # uint8#3. 绘制基本图形
import cv2
import numpy as np
# 创建空白图像
img = np.zeros((400, 600, 3), dtype=np.uint8)
# 绘制直线
cv2.line(img, (50, 50), (550, 50), (0, 255, 0), 2)
# 绘制矩形
cv2.rectangle(img, (100, 100), (300, 200), (255, 0, 0), 2)
# 绘制圆形
cv2.circle(img, (450, 150), 50, (0, 0, 255), -1) # -1 表示填充
# 绘制文字
cv2.putText(img, "Hello OpenCV", (50, 350),
cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow("Shapes", img)
cv2.waitKey(0)#4. 几何变换
#4.1 缩放
import cv2
img = cv2.imread("photo.jpg")
# 方法一:指定输出大小
resized = cv2.resize(img, (300, 200))
# 方法二:指定缩放比例
resized = cv2.resize(img, None, fx=0.5, fy=0.5)
cv2.imshow("Resized", resized)
cv2.waitKey(0)#4.2 旋转
import cv2
import numpy as np
img = cv2.imread("photo.jpg")
h, w = img.shape[:2]
# 获取旋转矩阵(中心、角度、缩放)
center = (w // 2, h // 2)
angle = 45 # 旋转 45 度
scale = 1.0
M = cv2.getRotationMatrix2D(center, angle, scale)
# 应用旋转
rotated = cv2.warpAffine(img, M, (w, h))
cv2.imshow("Rotated", rotated)
cv2.waitKey(0)#4.3 仿射变换
import cv2
import numpy as np
img = cv2.imread("photo.jpg")
h, w = img.shape[:2]
# 定义三个对应点
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
# 获取仿射变换矩阵
M = cv2.getAffineTransform(pts1, pts2)
# 应用变换
affine = cv2.warpAffine(img, M, (w, h))
cv2.imshow("Affine", affine)
cv2.waitKey(0)#5. 小结
OpenCV 基础操作:
1. 读取/显示/保存:imread、imshow、imwrite
2. 绘制图形:line、rectangle、circle、putText
3. 几何变换:resize、rotate、warpAffine
这些是所有 CV 应用的基础!💡 记住:OpenCV 使用 BGR 顺序,不是 RGB。如果颜色不对,检查通道顺序。
🔗 扩展阅读

