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")
相关推荐
獭.獭.几秒前
C++ -- 位图与布隆过滤器
开发语言·c++
工具人55552 分钟前
python 环境问题
开发语言·python
小年糕是糕手2 分钟前
【C++】string类(二)
开发语言·数据结构·c++·程序人生·算法·leetcode·数字货币
小鸡吃米…4 分钟前
Python编程语言面试问题三
开发语言·python·面试
周杰伦_Jay5 分钟前
【Go语言面试题核心详细解析】基础语法、并发编程、内存管理、接口、错误处理
开发语言·后端·golang
福尔摩斯张6 分钟前
Linux Kernel 设计思路与原理详解:从“一切皆文件“到模块化架构(超详细)
java·linux·运维·开发语言·jvm·c++·架构
yaoh.wang7 分钟前
力扣(LeetCode) 58: 最后一个单词的长度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
爱思德学术7 分钟前
中国计算机学会(CCF)推荐学术会议-A(计算机图形学与多媒体):SIGGRAPH 2026
计算机视觉·图形渲染·可视化·虚拟现实
深蓝海拓10 分钟前
PySide6从0开始学习的笔记(七) 控件(Widget)之文字输入类控件
笔记·python·qt·学习·pyqt
free-elcmacom10 分钟前
机器学习高阶教程<4>因果机器学习:因果推断、可解释AI与科学发现的新革命
人工智能·python·机器学习·因果机器学习