ToB企服应用市场:ToB评测及商务社交产业平台
标题:
OpenCV图片矫正
[打印本页]
作者:
西河刘卡车医
时间:
2024-12-16 21:34
标题:
OpenCV图片矫正
在盘算机视觉领域,图片矫正是一项非常重要的技能,特别是在处置惩罚因拍摄角度问题导致的图像失真时。
实验原理
图片矫正主要依靠于透视变换(Perspective Transformation)。透视变换是一种几何变换,可以将图像中的一个四边形地区映射到另一个四边形地区。这在处置惩罚如拍摄角度不正导致的图像扭曲时非常有用。
透视变换矩阵
透视变换的焦点是找到一个变换矩阵,这个矩阵可以将原图像中的点映射到目标图像中的点。OpenCV 提供了 cv2.getPerspectiveTransform 函数来盘算这个变换矩阵。我们必要指定原图像中的四个点和目标图像中的四个点,这八个点将用于盘算变换矩阵。
变换应用
一旦我们有了变换矩阵,就可以利用 cv2.warpPerspective 函数将原图像变换为目标图像。这个函数会应用透视变换矩阵,天生校正后的图像。
实验代码
下面是利用 OpenCV 进行图片矫正的完整代码:
import cv2
import numpy as np
# 1、读取一张图片
img = cv2.imread("./youhua.png")
# 2、获取透视变换矩阵
# 原图中的四个点(按顺时针或逆时针顺序选择四个顶点)
points1 = np.array([[175, 143], [642, 35], [88, 494], [659, 553]],
dtype=np.float32)
# 目标图中的四个点(新的图像区域的四个顶点)
points2 = np.array([[0, 0], [img.shape[1], 0], [0, img.shape[0]], [img.shape[1], img.shape[0]]],
dtype=np.float32)
# 计算透视变换矩阵
M = cv2.getPerspectiveTransform(points1, points2)
# 3、透视变换
# 应用透视变换矩阵进行图像矫正
img_warp = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0]))
# 显示原图和矫正后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Corrected Image', img_warp)
cv2.waitKey(0)
cv2.destroyAllWindows()
复制代码
实验现象
原图显示
:起首,代码读取并显示原始图像,这张图像大概由于拍摄角度问题而显得扭曲。
矫正后图像显示
:应用透视变换后,图像中的扭曲部门被矫正,图像看起来更加正视。
注意事项
点的选择
:选择原图像中的四个点时,必要确保这些点能够构成一个四边形,并且这个四边形的大致外形应该与目标图像中的四边形相匹配。
图像尺寸
:在进行透视变换时,目标图像的尺寸必要与原图保持划一,否则大概会导致图像被拉伸或压缩。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4