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

《OpenCV计算机视觉》—— 用于执行图像透视变换的两个关键函数

文章目录

      • cv2.getPerspectiveTransform
      • cv2.warpPerspective
      • 注意事项

cv2.getPerspectiveTransformcv2.warpPerspective 是 OpenCV 库中用于执行透视变换的两个关键函数。下面是对这两个函数的详细解释:

cv2.getPerspectiveTransform

功能:计算从源图像到目标图像的透视变换矩阵。

参数

  • src:源图像中的四个点的坐标,通常是一个形状为 (4, 2) 的 NumPy 数组,其中每行代表一个点的 (x, y) 坐标。
  • dst:目标图像中的四个对应点的坐标,格式与 src 相同。

返回值:返回一个形状为 (3, 3) 的透视变换矩阵 M

使用

import cv2
import numpy as np# 源图像中的四个点(通常选择图像的四个角)
src_points = np.array([[x1, y1], [x2, y2], [x3, y3], [x4, y4]], dtype="float32")# 目标图像中的四个对应点(定义变换后的图像形状)
dst_points = np.array([[X1, Y1], [X2, Y2], [X3, Y3], [X4, Y4]], dtype="float32")# 计算透视变换矩阵
M = cv2.getPerspectiveTransform(src_points, dst_points)

cv2.warpPerspective

功能:应用透视变换矩阵将源图像变换到目标图像。

参数

  • src:源图像。
  • M:由 cv2.getPerspectiveTransform 计算得到的透视变换矩阵。
  • dsize:输出图像的尺寸 (width, height)

可选参数

  • flagsborderMode:用于指定插值方法和边界像素的外推方法,但通常使用默认值即可。
  • borderValue:边界颜色值,当 borderMode 不为 cv2.BORDER_CONSTANT 时可以忽略。

返回值:返回变换后的图像。

使用

# 输出图像的尺寸
dsize = (width, height)# 应用透视变换
warped_image = cv2.warpPerspective(src, M, dsize)

注意事项

  1. 在选择源图像和目标图像中的四个点时,请确保它们是图像中的显著特征点,并且它们在源图像和目标图像中的相对位置保持一致。
  2. 透视变换可能会改变图像的宽高比和形状,因此需要根据实际需求调整输出图像的尺寸。
  3. 透视变换是一种非线性变换,可能会引入一些失真或扭曲效果。如果希望保持图像的某些特征不变(如直线保持直线),可能需要考虑其他类型的变换(如仿射变换)。

通过结合使用 cv2.getPerspectiveTransformcv2.warpPerspective,可以实现图像的透视校正、形状变换等效果,在图像处理和计算机视觉领域具有广泛的应用。

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

相关文章:

  • uniapp使用字体图标 ttf svg作为选项图标,还支持变色变图按
  • <Project-6 pdf2tx> Python Flask 应用:图片PDF图书的中文翻译解决方案
  • 10.11Python数学基础-多维随机变量及其分布
  • (四)Mysql 数据库备份恢复全攻略
  • 在MySQL 8.0中,如何更好地管理索引以节省空间和提高查询效率?
  • 图形化编程(013)——“面向鼠标指针”积木块
  • 【Spring】Spring Boot项目创建和目录介绍
  • 第十二章 RabbitMQ之失败消息处理策略
  • 23年408数据结构
  • vue3ElementPlu表格合并多行
  • MySQL数据库 - 索引(上)
  • redis与springBoot整合
  • YoloV9改进策略:BackBone改进|CAFormer在YoloV9中的创新应用,显著提升目标检测性能
  • 消防应急物资仓库管理系统
  • 【论文阅读】Semi-Supervised Few-shot Learning via Multi-Factor Clustering
  • 第十三章 RabbitMQ之消息幂等性
  • tpcms-master.zip
  • Spring国际化和Validation
  • ②EtherCAT转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 【华为HCIP实战课程八】OSPF网络类型及报文类型详解,网络工程师
  • 信息安全工程师(28)机房安全分析与防护
  • 大数据处理从零开始————9.MapReduce编程实践之信息过滤之学生成绩统计demo
  • 自动化测试 | 窗口截图
  • 初中数学网上考试系统的设计与实现(论文+源码)_kaic
  • 关系运算(3)
  • tp6的系统是如何上架的
  • Vue:开发小技巧
  • 力扣之1369.获取最近第二次的活动
  • Python 和 Jupyter Kernel 版本不一致
  • Android常用布局