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")
相关推荐
数据大魔方9 小时前
【期货量化进阶】期货Tick数据分析与应用:高频数据入门(TqSdk完整教程)
python·算法·数据挖掘·数据分析·github·程序员创富·期货程序化
aitoolhub9 小时前
H5交互设计:从策划到上线的实用方法论与避坑要点
人工智能·计算机视觉·交互·视觉传达
爱吃羊的老虎9 小时前
Streamlit:快速创建应用界面,无需了解 Web 开发
前端·python
黎雁·泠崖9 小时前
吃透Java操作符入门:分类差异+进制转换+原反补码 核心前置知识(Java&C对比)
java·c语言·开发语言
满栀5859 小时前
三级联动下拉框
开发语言·前端·jquery
名字不好奇9 小时前
C++虚函数表失效???
java·开发语言·c++
只想要搞钱9 小时前
python 学习记录--1(开发工具,链接数据库mysql)
python·学习
星浩AI9 小时前
深入理解 LlamaIndex:RAG 框架核心概念与实践
人工智能·后端·python
python开发笔记9 小时前
can(6) canopen python库使用
服务器·网络·python
rgeshfgreh9 小时前
Python变量与类型:从入门到精通
python