基于opencv实现透视变换(Python)

简介: 基于opencv实现透视变换(Python)

透视变换

   首先我们来看一下透视变换所能实现的效果,如下所示:image.png

   可以看出,经过透视变换后我们可以将原本倾斜的本子变成规规矩矩的。🙆🏼‍♂️🙆🏼‍♂️🙆🏼‍♂️这样的操作后我们就可以集中精力来处理我们所关注的本子的信息,而不受外界环境的影响,是不是很神奇,下面让我们一起来学习一下。✈✈✈

1、导入opencv等相关库,并封装一个显示图像的函数,方便后面显示图像

importcv2#opencv读取的格式是BGRimportnumpyasnpimportmatplotlib.pyplotasplt#Matplotlib是RGB%matplotlibinlinedefcv_show(img,name):
cv2.imshow(name,img)
cv2.waitKey()
cv2.destroyAllWindows()

2、读取图片

#读取图片image=cv2.imread('book.jpg')   #这里传入所需图片路径cv_show(image,"image")

3、设置输出图片的宽高

width,height=750,950

4、设置透视变换前后顶点位置✨✨✨

pts1=np.float32([[1037,1109],[1893,237],[3113,2641],[4624,3472]])
pts2=np.float32([[0,0],[width,0],[0,height],[width,height]])

   pts1中的坐标位置我们怎么得到呢,我们可以借助画图工具来获取本子四个顶点的坐标,如下图:【当鼠标移动到对应位置,左下角会显示对应的像素坐标】

a354d30a85e843149592385095035cfb.png

5、调用opencv中函数进行透视变换✨✨✨

M=cv2.getPerspectiveTransform(pts1, pts2)
warped=cv2.warpPerspective(image, M, (width, height))

   这部分是核心,主要是通过opencv中的函数来实现的,输出的warped就是经过透视变换后的图片。感兴趣的可以看一下透视变换的原理,这里不赘述,主要的思想就是把二维的图片先拉到三维,然后再输出为二维。


6、显示透视变换后的结果并将其保存

cv_show(warped,'warped')
cv2.imwrite('warped.png',warped)




相关文章
|
2月前
|
XML 机器学习/深度学习 人工智能
使用 OpenCV 和 Python 轻松实现人脸检测
本文介绍如何使用OpenCV和Python实现人脸检测。首先,确保安装了OpenCV库并加载预训练的Haar特征模型。接着,通过读取图像或视频帧,将其转换为灰度图并使用`detectMultiScale`方法进行人脸检测。检测到的人脸用矩形框标出并显示。优化方法包括调整参数、多尺度检测及使用更先进模型。人脸检测是计算机视觉的基础技术,具有广泛应用前景。
81 10
|
5月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
326 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
5月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
180 7
|
6月前
|
机器学习/深度学习 计算机视觉 Python
opencv环境搭建-python
本文介绍了如何在Python环境中安装OpenCV库及其相关扩展库,包括numpy和matplotlib,并提供了基础的图像读取和显示代码示例,同时强调了使用Python虚拟环境的重要性和基本操作。
|
6月前
|
存储 安全 算法
显微镜下的安全战!Python加密解密技术,透视数字世界的每一个安全细节
【9月更文挑战第7天】在数字世界中,数据安全至关重要。Python加密解密技术如同显微镜下的精密工具,确保信息的私密性和完整性。以大型医疗机构为例,通过AES和RSA算法的结合,既能高效加密大量医疗数据,又能安全传输密钥,防止数据泄露。以下是使用Python的`pycryptodome`库实现AES加密和RSA密钥交换的简化示例。此方案不仅提高了数据安全性,还为数字世界的每个细节提供了坚实保障,引领我们迈向更安全的未来。
59 1
|
7月前
|
存储 编解码 API
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
429 1
|
7月前
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
1060 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
7月前
|
机器学习/深度学习 人工智能 监控
利用Python和OpenCV实现实时人脸识别系统
【8月更文挑战第31天】本文将引导您了解如何使用Python结合OpenCV库构建一个简易的实时人脸识别系统。通过分步讲解和示例代码,我们将探索如何从摄像头捕获视频流、进行人脸检测以及识别特定个体。本教程旨在为初学者提供一条明晰的学习路径,帮助他们快速入门并实践人脸识别技术。
|
3月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
3月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。

热门文章

最新文章