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

opencv-图像仿射变换

仿射变换设计图像位置角度的变化,是深度学习预处理中常用的功能。仿射变换就是对图像的平移缩放旋转翻转操作的组合

如下图,对图中点1,2,3与图二中三个点一一映射,仍然形成三角形,但形状已经发生改变,通过这两组三点求出仿射变换矩阵,然后将其应用到图像中所有点就完成了图像的仿射变换

 

import numpy as np
import cv2
img = cv2.imread('1.jpg')
#获取图像宽和高
row, cols = img.shape[:2]
#创建变换矩阵,原图3个点,映射后对应3个点坐标
pts1 = np.float32([[0, 0], [0, 307], [216, 307]])
pts2 = np.float32([[50, 50], [200, 50], [100, 200]])
#利用cv2.getAffineTransform来求得矩阵M
M = cv2.getAffineTransform(pts1, pts2)
#利用函数cv2.warpAffine完成仿射变换并返回图像
dst = cv2.warpAffine(img, M, (cols, rows))#(cols, row)指变换后图像大小
#图像显示
cv2.imshow('1.jpg', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

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

相关文章:

  • 算法的基本概念
  • 124. Go Template应用实例:用代码生成代码
  • 【AI实践】阿里云方言文本转语音TTS
  • java 之 各类日期格式转换
  • Nvidia黄仁勋对话Meta扎克伯格:AI和下一代计算平台的未来 | SIGGRAPH 2024对谈回顾
  • 【JAVA设计模式】适配器模式——类适配器模式详解与案例分析
  • 【Vue】全局组件和局部组件
  • react引入高德地图并初始化卫星地图
  • 2024最简七步完成 将本地项目提交到github仓库方法
  • 前端WebSocket入门,看这篇就够啦!!
  • 漏洞复现-F6-11泛微-E-Cology-SQL
  • Turbo Boost 禁用
  • 假期BUUCTF小练习3
  • 【ubuntu系统】在虚拟机内安装Ubuntu
  • Python初学者必须掌握的基础知识点
  • ESP32是什么?
  • jemalloc分析内存
  • 【QT】qss
  • Java处理大数据的技巧
  • JavaScript基础——JavaScript常见语句(判断语句、循环语句、控制流语句)
  • 材质球向shader传值失败
  • 【TDH社区版大事件】图分析、全文检索、小文件治理、数据开发工具通通都有!
  • 【反序列化漏洞】serial靶机详解
  • C#列表按照日期进行从大到小排序
  • rt-thread每个线程状态切换方法
  • visual studio跳转到上一个/下一个光标处的快捷键设置
  • 网络基础命令配置复习 (基础华为设备)
  • 在AspNetCoreRateLimit中,ClientRateLimiting 和 IpRateLimiting 都有的时候按谁的来
  • PEP 8 – Python 代码风格指南中文版(五)
  • Spring中是如何实现IoC和DI的?