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")
相关推荐
2301_797312263 分钟前
学习Java40天
java·开发语言·学习
AI小怪兽4 分钟前
YOLO26:面向实时目标检测的关键架构增强与性能基准测试
人工智能·yolo·目标检测·计算机视觉·目标跟踪·架构
Two_brushes.5 分钟前
C++ 常见特殊类的设计(含有单例模式)
开发语言·c++
不会c嘎嘎5 分钟前
QT -- 窗口
开发语言·qt
LawrenceLan7 分钟前
Flutter 零基础入门(二十一):Container、Padding、Margin 与装饰
开发语言·前端·flutter·dart
weixin_4404016910 分钟前
Win11 系统 Anaconda 下载+conda命令+Jupyter Notebook+VS Code
ide·python·jupyter·conda
知乎的哥廷根数学学派11 分钟前
基于卷积特征提取和液态神经网络的航空发动机剩余使用寿命预测算法(python)
人工智能·pytorch·python·深度学习·神经网络·算法
高洁0111 分钟前
AIGC技术与进展(2)
人工智能·python·深度学习·机器学习·数据挖掘
lsx20240612 分钟前
C++ 注释
开发语言
岑梓铭13 分钟前
YOLO深度学习(计算机视觉)—毕设笔记(yolo训练效率加快)
人工智能·笔记·深度学习·神经网络·yolo·计算机视觉