Chapter 05:Warp Prespective/BirdView

  随着本专栏的学习,你可以快速的掌握如何使用Opencv,请注意更多的学习内容还请看官方文档,本专栏是为了给对于视觉方向比较感兴趣的新手所写,带领它们做好一个基础的框架,让他们快速学会如何通过这个框架调取函数做自己感兴趣的项目,同时我也正在更新我的Opencv项目实战专栏,你可以搭配着一起学习。

订阅此专栏, (2条消息) Opencv项目实战_夏天是冰红茶的博客-CSDN博客

在一堆的扑克牌当中,要如何使其修正呢?请看这里。

Chapter 05:Warp Prespective/BirdView

 此处,我们的目标是要将黑桃K取出,使其修正。它的最后效果是这样的。

Chapter 05:Warp Prespective/BirdView

效果非常的好,这里需要用到透视变换的知识,我不日后将会在我的另一个专栏图像处理中介绍。

此处要重点介绍一下Opencv的两个函数

cv2.getPerspectiveTransform(src, dst)从四对对应点计算透视变,src源图像中四边形顶点的坐标,dst目标图像中相应四边形顶点的坐标。

warpPerspective(src, M, dsize),对图像应用透视变换。

本章节的代码

import cv2
import numpy as np

img = cv2.imread("Resources/cards.jpg")

width,height = 250,350
pts1 = np.float32([[111,219],[287,188],[154,482],[352,440]])
#大概数值可通过PS的标尺得到
pts2 = np.float32([[0,0],[width,0],[0,height],[width,height]])
matrix = cv2.getPerspectiveTransform(pts1,pts2)
#透视变换函数,src:源图像中待测矩形的四点坐标,sdt:目标图像中矩形的四点坐标
imgOutput = cv2.warpPerspective(img,matrix,(width,height))
#参数:输入图像,变换矩阵,目标图像shape

cv2.imshow("Image",img)
cv2.imshow("Output",imgOutput)

cv2.waitKey(0)

大家一定比较好奇,我的pts1是怎么来的,现在我来说下,具体的方法

第一种方法:

采用QQ截图,打开我们的图片,并且QQ在线。

Chapter 05:Warp Prespective/BirdView

 这样,保持原始大小,不要有任何的放大和缩小。

点击Ctrl+Alt+A,在左上角有数值。这是我用windows系统的截图。

Chapter 05:Warp Prespective/BirdView

 Chapter 05:Warp Prespective/BirdView

 请看,数值上是112*220,填入我们所构成的矩阵。这便是第一个点,按照顺序就可创建这个矩阵。

第二种方法:

我们使用PS,直接打开图片,不用置入对象。使用标尺,如下的左边和上边。

Chapter 05:Warp Prespective/BirdView

 从相应的标尺的地方可以拉出一条线,如下,只是我们对应好位置后,需要记下相应的数值。

Chapter 05:Warp Prespective/BirdView

 Chapter 05:Warp Prespective/BirdView

 两种方法,大家任取其一即可,用QQ截图很快捷,用PS可以看得更细微。当然还有其他得方法,比如有些电脑中的画图是自带有这个功能。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年10月8日 下午8:50
下一篇 2022年10月8日 下午8:52

相关推荐