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")
相关推荐
摇滚侠1 分钟前
Java 零基础全套视频教程,日期时间 API,笔记147-148
java·开发语言·笔记
不惑_4 分钟前
Windows安装Java
java·开发语言·windows
毕设源码-赖学姐5 分钟前
【开题答辩全过程】以 基于Java的化学实验室信息管理系统为例,包含答辩的问题和答案
java·开发语言
咕噜咕噜啦啦8 分钟前
Java速通(应用程序)
java·开发语言
我是人机不吃鸭梨16 分钟前
Flutter AI 集成革命(2025版):从 Gemini 模型到智能表单验证器的终极方案
开发语言·javascript·人工智能·flutter·microsoft·架构
沐知全栈开发16 分钟前
服务定位器模式
开发语言
编码小哥17 分钟前
OpenCV阈值分割技术:全局阈值与自适应阈值
人工智能·opencv·计算机视觉
计算机徐师兄17 分钟前
Python基于Django的网络入侵检测系统(附源码,文档说明)
python·django·网络入侵检测·网络入侵检测系统·python网络入侵检测系统·网络入侵·python网络入侵检测
期待のcode20 分钟前
Java Object 类
java·开发语言
AI即插即用22 分钟前
即插即用系列 | CVPR 2025 FDConv:频域动态卷积,打破密集预测任务的参数效率瓶颈
图像处理·人工智能·深度学习·神经网络·计算机视觉·cnn·视觉检测