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")
相关推荐
这里是彪彪18 小时前
Java中的volatile关键字的作用
java·开发语言
王夏奇18 小时前
python在汽车电子行业中应用2—具体包的介绍和使用
网络·python·汽车
Dxy123931021618 小时前
Python的zip用法详解
开发语言·python
逑之18 小时前
C语言笔记3:分支与循环
c语言·开发语言·笔记
黎雁·泠崖19 小时前
Java入门从零起步:CMD操作+JDK环境搭建+第一个Java程序
java·开发语言
f***241119 小时前
MATLAB高效算法优化实战指南
开发语言·算法·matlab
我的golang之路果然有问题19 小时前
python中 unicorn 热重启问题和 debug 的 json
java·服务器·前端·python·json
lagrahhn19 小时前
scoop的使用
大数据·python·搜索引擎
智算菩萨19 小时前
【Python自然语言处理】实战项目:词向量表示完整实现指南
开发语言·python·自然语言处理
Elaine33619 小时前
【验证码识别算法性能对比实验系统——KNN、SVM、CNN 与多模态大模型的性能博弈与机理分析】
python·opencv·支持向量机·cnn·多模态·数字图像处理