Python Opencv实践 - 图像透射变换

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt


img = cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR)
rows,cols = img.shape[:2]
print(rows,cols)

#opencv中的透射变换,需要一个3x3透射变换矩阵
#这个矩阵可以通过cv.getPerspectiveTransform(src,dst)获得
#src是原图中的4个点的坐标,dst是目标图像中的4个点的坐标(任意三个点不共线)
#参考资料:https://blog.csdn.net/qq_50394133/article/details/123832496
srcPts = np.float32([[56,65],[368,52],[28,387],[389,390]])
dstPts = np.float32([[100,145],[300,100],[80,290],[310,300]])
M_perspective = cv.getPerspectiveTransform(srcPts,dstPts)


#图像透射变换
#cv.warpPerspective(src,M,dsize,dst,flags,borderMode,borderValue)
img_perspective = cv.warpPerspective(img,M_perspective,(cols,rows))

#显示图像
fig,axes = plt.subplots(nrows=1, ncols=2, figsize=(12,12), dpi=100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title("Original")
axes[1].imshow(img_perspective[:,:,::-1])
axes[1].set_title("Perspective Transform")
相关推荐
liu_chunhai1 分钟前
设计模式(3)builder
java·开发语言·设计模式
Mr.D学长6 分钟前
毕业设计 深度学习社交距离检测系统(源码+论文)
python·毕业设计·毕设
姜学迁9 分钟前
Rust-枚举
开发语言·后端·rust
wdxylb10 分钟前
解决Python使用Selenium 时遇到网页 <body> 划不动的问题
python
冷白白11 分钟前
【C++】C++对象初探及友元
c语言·开发语言·c++·算法
凌云行者15 分钟前
rust的迭代器方法——collect
开发语言·rust
代码骑士18 分钟前
【一起学NLP】Chapter3-使用神经网络解决问题
python·神经网络·自然语言处理
It'sMyGo18 分钟前
Javascript数组研究09_Array.prototype[Symbol.unscopables]
开发语言·javascript·原型模式
睡觉然后上课29 分钟前
c基础面试题
c语言·开发语言·c++·面试
qing_04060336 分钟前
C++——继承
开发语言·c++·继承