当前位置: 首页 > news >正文

Python Opencv实践 - 图像仿射变换

import cv2 as cv
import numpy as np
import matplotlib.pyplot as pltimg = 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")

http://www.lryc.cn/news/128751.html

相关文章:

  • 如何使用CSS实现一个模态框(Modal)效果?
  • 关于API数据接口获取商品的数据的说明
  • Redis持久化——AOF
  • Qt 嵌入Vue项目 flapMap 浏览器兼容性问题
  • 1.SpringMVC接收请求参数及数据回显:前端url地址栏传递参数通过转发显示在网页
  • C++ Primer Plus: 第10章(2)
  • c++中的extern关键字
  • javaScript:快乐学习计时器
  • onnxruntime 支持的所有后端
  • k8s 自身原理 5
  • 机器视觉应用开发什么最重要?
  • React+Typescript使用接口泛型处理props
  • 自定义python文件import导入ModuleNotFoundError: No module named ‘***‘ 问题
  • Codeforces Round 893 (Div. 2)B题题解
  • HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况
  • Vue-10.集成.env
  • 强训第33天
  • 【CTF-web】buuctf-[极客大挑战 2019]EasySQL 1(sql注入)
  • 脚本语言与编译语言的区别
  • 大型企业或者组织,组建专属的虚拟局域网,深入理解相关的配置和搭建使用、网络加速和网络优化,可夸地区夸国际使用,深入搞懂每项配置的作用和含义
  • 数据结构:二叉树的递归实现(C实现)
  • MinGW编译运行报错RTTI symbol not found for class ‘XXX‘
  • table表头颜色 element plus
  • 网络安全(自学)
  • FPGA芯片IO口上下拉电阻的使用
  • 掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!
  • 在Docker上部署2台节点,利用Keeplived实现双节点VIP 高可用,不需要关闭Keeplived,实现vip来回切换。
  • leetcode 279. 完全平方数
  • 【从零学习python 】48.Python中的继承与多继承详解
  • 二、编写第一个 Spring MVC 程序(总结项目报 404 问题以及 Spring MVC 的执行流程)