OpenCV图片矫正

矫正效果图:

实验原理:

先找到这个不规则四边形的四个顶点的坐标,然后拿一个numpy数组来接收他们,然后再写一个numpy数组记录新生成图的四个顶点,然后写下M透视变换矩阵,可以通过函数cv2.getPerspectiveTransform()计算得到,然后通过透视变换函数cv2.warpPerspective(src, M, dsize, dst=None, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=None)得到一张新的图片

cv2.warpPerspective(src, M, dsize, dst=None, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=None)

功能:用于对图像进行透视变换的函数

参数:

src: 输入图像,即你想要进行透视变换的源图像。

M: 透视变换矩阵,通常是一个 3x3 的矩阵,可以通过 cv2.getPerspectiveTransform() 函数计算得到。这个矩阵定义了源图像中的点如何映射到目标图像中的点。

dsize: 输出图像的尺寸,以 (width, height) 的形式表示。这是变换后图像的尺寸。

dst: 输出图像,这是一个可选参数。

flags: 插值方法。

borderMode: 边界填充方法。

borderValue: 边界颜色【可选】。

python 复制代码
import cv2
import numpy as np

img=cv2.imread('./pic.png')
# 2、 获取透视变换矩阵
# 目标图中的四个点
points1=np.float32([[175,143],[621,35],[89,491],[652,546]])
# 目标图中的四个点
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)
img_Perspective=cv2.warpPerspective(img,M,(img.shape[1],img.shape[0]))
cv2.imshow('image',img)
cv2.imshow('image_Perspective',img_Perspective)
cv2.waitKey(0)
相关推荐
InfiSight智睿视界6 分钟前
连锁店管理力不从心?让智能体接管30%重复工作
人工智能·智能巡检系统·ai巡检
围炉聊科技8 分钟前
国内AI智能眼镜开放平台全景解析:从SDK到生态建设
人工智能
golang学习记10 分钟前
Claude Code之父首次揭秘:13个CC独门AI编程使用技巧!
人工智能
狗狗学不会10 分钟前
视觉检测的新范式:从“像素感知”到“时序语义推理”—— 基于 Qwen3-VL 与时序拼图策略的通用事件检测系统
人工智能·计算机视觉·视觉检测
song1502653729816 分钟前
如何选择适合的AI视觉检测设备?
人工智能
FE_C_P小麦16 分钟前
AI Prompt 提示词模板【转载】
人工智能
桂花饼22 分钟前
量化双雄争霸:九坤 IQuest-Coder-V1 的技术突破
人工智能·aigc·nano banana 2·openai兼容接口·claude opus 4.5·sora2 pro
undsky_28 分钟前
【n8n教程】:RSS Feed Trigger节点,玩转RSS订阅自动化
人工智能·ai·aigc·ai编程
摘星编程32 分钟前
【RAG+LLM实战指南】如何用检索增强生成破解AI幻觉难题?
android·人工智能
人工智能培训33 分钟前
什么是马尔可夫决策过程(MDP)?马尔可夫性的核心含义是什么?
人工智能·深度学习·机器学习·cnn·智能体·马尔可夫决策