欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 使用open—cv进行图片矫正

使用open—cv进行图片矫正

2025/9/18 15:22:32 来源:https://blog.csdn.net/m0_65886245/article/details/144433823  浏览:    关键词:使用open—cv进行图片矫正

实验原理

  1. 找到原图 和目标图的四个点,获取透视变换矩阵
  2. 对图像应用透视变换,实现油画区域的矫正

实验过程

import cv2
import numpy as np# 读取图片文件
img = cv2.imread('./g.png')# 定义源图像中的四个角点
points1 = np.float32([[174,143],[623,37],[90,492],[656,550]
])# 根据源图像角点的最小和最大坐标值,定义目标图像中的四个角点
# 这样做是为了将源图像的角点区域变换到目标图像的对应位置
points2 = np.float32([[min(points1[:,0]),min(points1[:,1])],[max(points1[:,0]),min(points1[:,1])],[min(points1[:,0]),max(points1[:,1])],[max(points1[:,0]),max(points1[:,1])]
])# 计算透视变换矩阵
M = cv2.getPerspectiveTransform(points1, points2)# 应用透视变换到图像上
dst = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0]))# 获取油画部分的边界坐标
min_x, min_y = points2.min(axis=0).astype(int)
max_x, max_y = points2.max(axis=0).astype(int)# 裁剪图像以去除油画以外的空间
cropped_dst = dst[min_y:max_y, min_x:max_x]# 显示原图
cv2.imshow('img', img)# 显示裁剪后的图像
cv2.imshow('cropped_dst', cropped_dst)cv2.waitKey(0)

实验结果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词