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")
相关推荐
菜到离谱但坚持1 分钟前
零门槛学LangChain:AI开发从入门到实战
python·langchain·prompt·rag
LiLiYuan.2 分钟前
【happens-before 八大规则详解】
java·开发语言
断点之下7 分钟前
从C的struct到C++的class:封装、this指针、三大特性入门
开发语言·c++
yongui478347 分钟前
基于稀疏低秩分解的图像去噪MATLAB实现
开发语言·matlab
databook8 分钟前
一次函数图像工厂:用 SymPy 自动生成 y=kx+b 对比动画
python·数学·动效
测试老哥9 分钟前
接口测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
geovindu10 分钟前
python: N-Barrier Pattern
开发语言·python·设计模式·屏障模式
浮生望12 分钟前
Python 入门 + 调用 LLM API:从 List 切片到商品文案生成
python
战族狼魂19 分钟前
MetaPrompt编译器核心逻辑拆解
开发语言·人工智能·python
lunzi_082619 分钟前
【学习笔记】《Python编程 从入门到实践》第5章:if语句、条件测试与列表处理实战
笔记·python·学习