Python:用numpy+OpenCV快速实现矫正图像的功能
透视变换是一个很实用的功能,当用手机去拍证件或者名片时,经常会拍歪,或者有边框。如果你使用过类似“扫描全能王”的软件,你应该知道,他们会自动把证件矫正并除边框,它就是通过透视变换实现的,和numpy中的仿射变换一样。
1.运行环境
- Python3.6.5
- pycharm
- win10
- 安装oponcv, numpy 库
安装教程链接
2.代码
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('E:\\card2.jpg') rows, cols = img.shape[:2] # 原图中书本的四个角点 pts1 = np.float32([[69, 163], [704, 62], [162, 675], [970, 411]]) # 变换后分别在左上、右上、左下、右下四个点 pts2 = np.float32([[0, 1000], [0, 0], [750, 1000], [750, 0]]) # 生成透视变换矩阵 M = cv2.getPerspectiveTransform(pts1, pts2) # 进行透视变换 dst = cv2.warpPerspective(img, M, (750, 1000)) plt.subplot(121), plt.imshow(img[:, :, ::-1]), plt.title('input') plt.subplot(122), plt.imshow(dst[:, :, ::-1]), plt.title('output') # img[:, :, ::-1]是将BGR转化为RGB plt.show()
3.解析
通过锁定书的角点,并设定改变后的角点,来达到矫正图像的目的。 坐标原点在图片左上角!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一份送给Java初学者的指南
我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java-Guide 笔者建议初学者学习Java的方式:看书+视频+实践(初学最难的问题其实还是在环境) Java学习书籍推荐 《Head First Java.第二版》:可以说是我的Java启蒙书籍了,特别适合新手读当然也适合我们用来温故Java知识点。 《Java核心技术卷1+卷2》:很棒的两本书,建议有点Java基础之后再读,介绍的还是比较深入的,非常推荐。 《Java编程思想(第4版)》:这本书要常读,初学者可以快速概览,中等程序员可以深入看看java,老鸟还可以用之回顾java的体系。这本书之所以厉害,因为它在无形中整合了设计模式,这本书之所以难读,也恰恰在于他对设计模式的整合是无形的。 一些Java方向学习书籍汇总(PDF仅为预览版本,建议购买正版): 链接:https://pan.baidu.com/s/1g0mjyJX5ZWU706IKjDSzeg 密码:b88d Java学习视频推荐 Java工程师学...
- 下一篇
Confluence 6 尝试从 XML 备份中恢复时解决错误
错误可能是因为数据库突然不可访问而产生。也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份: 在实例开始恢复的时候,请按照下面的指南来禁用批量更新(针对简单的问题解决),启用 SQL 日志和SQL 查询日志,通过在 Enabling Detailed SQL Logging 页面中描述的参数(with parameters)。 一旦上面 3 个修改都完成了后,重启 Confluence。 尝试另外一次恢复。 当你在恢复的时候失败了,检查你的日志文件找到不能用 XML 转换为记录的地方。针对使用 Confluence 分发包的用户,检查你 Confluence 的安装目录下的 /logs/ 目录,检查 atlassian-confluence.log 和 catalina.out 文件。正确的文件应当包含有 SQL 的调试日志输出。 滚动到文件的最下端,找到相关的错误信息,这个信息应该是与数据库有关了,例如下面的错误信息: 2006-07-13 09:32:33,372 ERROR [confluence.impor...
相关文章
文章评论
共有0条评论来说两句吧...