ToB企服应用市场:ToB评测及商务社交产业平台

标题: OpenCV图片矫正 [打印本页]

作者: 西河刘卡车医    时间: 2024-12-16 21:34
标题: OpenCV图片矫正
在盘算机视觉领域,图片矫正是一项非常重要的技能,特别是在处置惩罚因拍摄角度问题导致的图像失真时。

实验原理

图片矫正主要依靠于透视变换(Perspective Transformation)。透视变换是一种几何变换,可以将图像中的一个四边形地区映射到另一个四边形地区。这在处置惩罚如拍摄角度不正导致的图像扭曲时非常有用。
透视变换矩阵

透视变换的焦点是找到一个变换矩阵,这个矩阵可以将原图像中的点映射到目标图像中的点。OpenCV 提供了 cv2.getPerspectiveTransform 函数来盘算这个变换矩阵。我们必要指定原图像中的四个点和目标图像中的四个点,这八个点将用于盘算变换矩阵。
变换应用

一旦我们有了变换矩阵,就可以利用 cv2.warpPerspective 函数将原图像变换为目标图像。这个函数会应用透视变换矩阵,天生校正后的图像。
实验代码

下面是利用 OpenCV 进行图片矫正的完整代码:
  1. import cv2
  2. import numpy as np
  3. # 1、读取一张图片
  4. img = cv2.imread("./youhua.png")
  5. # 2、获取透视变换矩阵
  6. # 原图中的四个点(按顺时针或逆时针顺序选择四个顶点)
  7. points1 = np.array([[175, 143], [642, 35], [88, 494], [659, 553]],
  8.                    dtype=np.float32)
  9. # 目标图中的四个点(新的图像区域的四个顶点)
  10. points2 = np.array([[0, 0], [img.shape[1], 0], [0, img.shape[0]], [img.shape[1], img.shape[0]]],
  11.                    dtype=np.float32)
  12. # 计算透视变换矩阵
  13. M = cv2.getPerspectiveTransform(points1, points2)
  14. # 3、透视变换
  15. # 应用透视变换矩阵进行图像矫正
  16. img_warp = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0]))
  17. # 显示原图和矫正后的图像
  18. cv2.imshow('Original Image', img)
  19. cv2.imshow('Corrected Image', img_warp)
  20. cv2.waitKey(0)
  21. cv2.destroyAllWindows()
复制代码

实验现象
注意事项





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4