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(img.shape[:2])


#使用getAffineTransform来获得仿射变换的矩阵M
#cv.getAffineTransform(pts 1,pts 2)
#pts 1: 原图中的3个点坐标
#pts 2:经过放射变换后的3个点坐标
#参考资料:https://blog.csdn.net/weixin_45335726/article/details/122531876
pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[100,100],[200,50],[100,250]])
M = cv.getAffineTransform(pts1,pts2)
img_affine_transform = cv.warpAffine(img, M, (cols,rows))


#显示图像
fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title("Original")
axes[1].imshow(img_affine_transform[:,:,::-1])
axes[1].set_title("Affine Transformed")
相关推荐
Figo_Cheung5 分钟前
赛博疯态(Cyber-Madness)研究报告——基于人机交互中的情感共鸣、递归指涉与拟人化投射现象分析
开发语言·php·人机交互
计算机安禾8 分钟前
【数据结构与算法】第24篇:哈夫曼树与哈夫曼编码
c语言·开发语言·数据结构·c++·算法·visual studio
咚为14 分钟前
深入浅出 Rust 内存顺序:从 CPU 重排到 Atomic Ordering
开发语言·后端·rust
susu108301891119 分钟前
python代码把GIF 转成视频
开发语言·python
木头程序员23 分钟前
关于load_data_fashion_mnist函数运行原理以及运行速度慢解决方案
人工智能·python·深度学习·d2l
不懒不懒29 分钟前
【Windows 安装 dlib 保姆级教程 + OpenCV vs dlib 人脸检测实战对比】
计算机视觉·dlib
林姜泽樾34 分钟前
python入门第六课,其他字符串格式化和input
开发语言·python·pycharm
代码改善世界34 分钟前
【C++初阶】手撕C++ string类
java·开发语言·c++
yunpeng.zhou34 分钟前
深度理解agent与llm之间的关系、及mcp与skill的区别
人工智能·python·ai
追雨潮37 分钟前
内存向量检索引擎设计与实现:C# 轻量级 Milvus 替代方案
开发语言·c#·milvus