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")
相关推荐
问今域中几秒前
java技术史001:EJB 侵入性的历史阵痛与 Spring 的突围
java·开发语言·rpc
漫随流水2 分钟前
旅游推荐系统(getEchartsData.py)
python·django·旅游
BUG创建者2 分钟前
openlayers上跟据经纬度画出轨迹
开发语言·javascript·vue·html
23.5 分钟前
【Java】NIO零拷贝技术揭秘:CPU不参与的数据传输
java·开发语言·nio
宸津-代码粉碎机5 分钟前
SpringBoot 任务执行链路追踪实战:TraceID 透传全解析,实现从调度到执行的全链路可观测
开发语言·人工智能·spring boot·后端·python
这张生成的图像能检测吗5 分钟前
(论文速读)PatchTST:通道无关补丁时间序列变压器
人工智能·深度学习·神经网络·计算机视觉·注意力机制·vit·时序模型
归零鸟9 分钟前
全国重点风景名胜区地图
图像处理
茉莉玫瑰花茶10 分钟前
CMake 工程指南 - 工程场景(5)
开发语言·c++·cmake
想做后端的前端16 分钟前
Lua的元表和元方法
开发语言·junit·lua
大尚来也20 分钟前
Spring Boot 3 + Spring Cloud 2026 微服务实战:云原生、AI 融合与架构演进
开发语言