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")
相关推荐
金涛03191 小时前
QT-day2,信号和槽
开发语言·qt·命令模式
C嘎嘎嵌入式开发1 小时前
(六)机器学习之图卷积网络
人工智能·python·机器学习
DataLaboratory4 小时前
Python爬取百度地图-前端直接获取
爬虫·python·百度地图
Turnsole_y7 小时前
pycharm自动化测试初始化
python·selenium
R-G-B7 小时前
【02】C#入门到精通——C# 变量、输入/输出、类型转换
开发语言·c#·c# 变量·c#输入/输出·c#类型转换
星河队长7 小时前
C# 软件加密方法,有使用时间限制,同时要防止拷贝
开发语言·c#
史迪奇_xxx7 小时前
10、一个简易 vector:C++ 模板与 STL
java·开发语言·c++
2301_801252227 小时前
Java中的反射
java·开发语言
Kiri霧8 小时前
Rust开发环境搭建
开发语言·后端·rust
weixin-a153003083168 小时前
[数据抓取-1]beautifulsoup
开发语言·python·beautifulsoup