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")
相关推荐
2401_8323655241 分钟前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z43 分钟前
第J3周:DenseNet121算法详解
python
Bat U1 小时前
JavaEE|多线程初阶(七)
java·开发语言
张人玉1 小时前
机器视觉VsionPro——多目标检测高级用法动态
目标检测·计算机视觉·机器视觉·vsionpro
谭欣辰1 小时前
C++ 排列组合完整指南
开发语言·c++·算法
2301_779622411 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_766283441 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
foundbug9992 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
XDH_CS2 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql