博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python:用numpy+OpenCV快速实现矫正图像的功能
阅读量:6446 次
发布时间:2019-06-23

本文共 791 字,大约阅读时间需要 2 分钟。

是一个很实用的功能,当用手机去拍证件或者名片时,经常会拍歪,或者有边框。如果你使用过类似“扫描全能王”的软件,你应该知道,他们会自动把证件矫正并除边框,它就是通过透视变换实现的,和numpy中的仿射变换一样。

img_84e6190b1637d423d8056c3508021e72.png
左图为原图,右图为矫正后的图

1.运行环境

  • Python3.6.5
  • pycharm
  • win10
  • 安装oponcv, numpy 库

2.代码

import cv2import numpy as npimport matplotlib.pyplot as pltimg = 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转化为RGBplt.show()

3.解析

img_47ec7843995158475d0c6994661fe574.jpe
图中角点坐标需要自己设定
通过锁定书的角点,并设定改变后的角点,来达到矫正图像的目的。
坐标原点在图片左上角!

转载地址:http://mjvwo.baihongyu.com/

你可能感兴趣的文章
html css 伪样式
查看>>
超级账本Fabric区块链用弹珠游戏Marbles 部署
查看>>
常用的正则表达式
查看>>
springcloud 之 配置中心服务 spring cloud config
查看>>
Discover a powerful and suitable Javascript Automatic Testing Toolkit
查看>>
获取offsetTop和offsetLeft的值(兼容)-by小雨
查看>>
让.net程序自动运行在管理员权限下
查看>>
YbSoftwareFactory 代码生成插件【十一】:ASP.NET WebApi MVC下组织机构管理和菜单权限管理的实现...
查看>>
变量输出在window xp下使用eventquery.vbs脚本输出当天电脑每次的启动时间
查看>>
[摘录]高效人士七习惯—重新探索自我
查看>>
CheckBoxList控件选中的选项不能改变
查看>>
编程回调面向对象设计开卷考题A
查看>>
posix多线程有感--线程高级编程(线程和fork,exec)
查看>>
如何通过超链接打开Activity并传入参数
查看>>
在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?
查看>>
nullnullIOS里多态的一些方法
查看>>
PostgreSQL在何处处理 sql查询之三十六
查看>>
创建FileShare的content source的SharePoint 2013的powershell脚本
查看>>
【iOS开发者必备】APP 图标规格参考表
查看>>
泛型中去掉指定字段重复的数据
查看>>