OpenCV——透视变换

前言

​ 需求: 将一个梯形变为需要的图形,后续需要持续进行映射。让整张图像的所有点位都按照这样的映射关系进行映射。

正文

一、透视变换相关介绍

从名称中可以清楚地看出,透视变换研究是坐标变化之间的关系。这种类型的转换不保留信息的平行度、长度和角度。但它们确实保留了共线性和关联性。这意味着即使在变换之后直线仍将保持直线。

二、补充仿射变换的补充

透视变换和仿射变换都是图像处理中常用的几何变换方法,但它们之间存在一些区别。
透视变换是一种非线性变换,它可以通过调整图像中物体的尺寸和位置关系,使其看起来更符合人眼的视觉感受。透视变换需要至少4个点来确定一个透视变换矩阵。
仿射变换是一种线性变换,它可以通过调整图像中物体的位置、旋转和缩放关系,来实现图像的变换。仿射变换需要至少3个点来确定一个仿射变换矩阵。
因此,透视变换和仿射变换虽然都可以实现图像的变换,但它们的应用场景和变换效果是不同的。透视变换主要用于处理三维场景中的透视投影问题,而仿射变换则更适用于处理二维场景中的平移、旋转和缩放等问题。

三、实验效果图

原图:
在这里插入图片描述

效果图:

在这里插入图片描述

四、示例代码

def testWarp():
    img = cv2.imread("C:\\Users\\19242\\Desktop\\Image\\Test.png")
    plt.imshow(img[:,:,::-1])
    # plt.show()
    inputPts = np.float32([[407,242],[931,232],[1166,477],[183,477]])
    outputPts= np.float32([[10,10],[310,0],[310,310],[10,310]])
    M = cv2.getPerspectiveTransform(inputPts, outputPts)
    dst = cv2.warpPerspective(img, M, (400,400))
    plt.imshow(dst[:,:,::-1])
    plt.show()


# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    #print_hi('PyCharm')
    testWarp()

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/559827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据采集技术综合项目实战3(网络爬虫+数据预处理+数据可视化)附带详细步骤说明,干货满满

项目介绍及需求: 本项目主要是通过对b站电影弹幕进行采集并分析。1.获得弹幕高频词生成符合该电影特征、主题、角色等相关字段的词云图,通过词云图的方式对某部电影主题具体化。2.获取用户年内评论发布时间观生成时间的折线图,以便从侧面观察…

HarmonyOS-静态库(SDK)的创建和使用

文章目录 一、静态库(SDK)二、创建静态库1.新建静态库模块2. 开发静态库内容3. 编译静态库 三、使用静态库1. 配置项目依赖2. 在应用中使用静态库3. 注意事项 四、打包错误1. library引用本地har包错误 一、静态库(SDK) 在Harmon…

【35分钟掌握金融风控策略6】决策树风控策略开发

目录 ​编辑 决策树 决策树原理 决策树生成 特征选择 决策树生成 决策树剪枝 决策树 决策树(Decision Tree)是一种强大的分类和预测方法,因其实践起来比较简单且具有较好的解释性,所以在金融风控领域应用广泛。决策树也是…

如何快速提高阿里国际、Shopee和速卖通产品的曝光率?

当卖家完成产品上传后,他们还能做些什么来进一步提升产品的曝光量呢?产品的曝光量无疑对店铺的销量具有显著影响,那么,如何有效地提升产品曝光量呢?又有哪些快速且实用的方法呢?今天,我们就来深…

【力扣 Hot100 | 第五天】4.20(回文链表)

1.回文链表 1.1题目 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例一: 输入:head [1,2,2,1] 输出:true示例二: 输入…

智慧城市标准化白皮书(2022版)发布

2022年7月25日,国家智慧城市标准化总体组2022年度全体会议召开期间,《智慧城市标准化白皮书(2022版)》正式发布。 城市作为一个复杂巨系统,是多元主体融合及多元活动集聚的复杂综合体。城市的运行发展关联 到发展、治…

康耐视visionpro-Cog2DSymbolTool操作操作工具详细说明

Cog2 DSymbolToolI功能说明: 二维码读取工具 Cog2 DSymbolTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加Cog2DSymbolTool工具 ②.添加输入图像,右键“链接到”或以连线拖拽的方式选择相应输入图像。 ③.代码系统&#x…

Pytest精通指南(22)钩子函数-重复执行(pytest-repeat)

文章目录 前言应用场景插件安装参数分析使用方式一:命令行使用方式二:配置文件使用方式三:装饰器 前言 pytest框架中的**重复测试(pytest-repeat)**插件的用途是允许在运行测试用例时进行多次循环,以更全面…

2024年开通最新版云开发cms步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台 一,技术选型和技术点 1,小程序前端 wxml css JavaScript MINA原生小程序框架 2,数据库 云开发 云数据库 云…

中毒的电脑插U盘也会中毒吗?U盘中毒了不显示数据怎么办

随着数字技术的快速发展,U盘作为数据存储和传输的重要工具,广泛应用于我们的日常生活和工作中。然而,U盘在带来便利的同时,也带来了潜在的安全风险。当一台中毒的电脑插入U盘时,U盘是否也会被感染?如果U盘中…

PHP 爬虫如何配置代理 IP(CURL 函数)

在 PHP中 配置代理IP&#xff0c;可以通过设置 CURL 库的选项来实现&#xff0c;代码如下&#xff1a; 当然你要有代理ip来源&#xff0c;比如我用的这个 代理商 &#xff0c;如果想服务稳定不建议找开源代理池&#xff0c;避免被劫持。 <?php // 初始化cURL会话 $ch cu…

C++中的stack(容器适配器)

目录 一、成员函数 一、构造函数 二、入栈 三、出栈 四、判空 empty () 五、栈大小 size 六、取栈顶元素 top 七、入栈 emplace 八、交换函数 swap 二、非成员函数重载 一、关系运算符重载 二、交换函数 C中的stack不再是容器&#xff0c;而是容器适配器 注意&a…

[InternLM训练营第二期笔记]4. XTuner 微调 LLM:1.8B、多模态、Agent

该系列是上海AI Lab举行的书生 浦语大模型训练营的相关笔记部分。 该笔记是第四节课&#xff0c;学习大语言模型微调的基本概念&#xff0c;以及利用XTuner工具进行微调。 0. 什么是LLM中的微调 0.1 两种Finetune范式 微调的目的是为了让foundation模型在特定的领域更好地发挥…

力扣练习题(2024/4/18)

1不相交的线 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在&#xff0c;可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线&#xff0c;这些直线需要同时满足&#xff1a; nums1[i] nums2[j]且绘制的直线不与任何其他连线&#xff08;非水平线…

mysql按季度统计数据

最近遇到按表里得交付时间换成季度取统计&#xff0c;如下&#xff1a; select sp.Id,sp.title,QUARTER(sp.expected_delivery_time) dateStr,CONCAT(DATE(MIN(sp.expected_delivery_time)),至,DATE(MAX(sp.expected_delivery_time))) dateStr2,sp.DemandType,sp.IndustryGrou…

【人工智能基础】状态空间搜索

状态空间法 状态空间&#xff1a;一个问题全部可能的状态以及其关系的集合。 状态空间图&#xff1a;以图的形式表示问题的状态空间&#xff0c;节点对应状态&#xff0c;边对应状态转移算子&#xff0c;边上的权对应转移所需的代价 问题的解&#xff1a;是从最开始状态到目…

BP使用和弱口令漏洞

目录 一、BP使用 1.BP设置 2.Proxy 3.Reapter 4.Decord 5.Intruder 二、弱口令爆破 1.服务弱口令爆破 2.验证码绕过 一、BP使用 1.BP设置 设置代理的监听端口: 这里设置为本机的9090端口 2.Proxy 浏览器要挂代理&#xff0c;设置为本机的9090端口 打开拦截功能 当浏览…

Youtube DNN

目录 1. 挑战 2. 系统整体结构 3.召回 4. 排序 5. 训练和测试样本的处理 1. 挑战 &#xff08;1&#xff09;规模。很多现有的推荐算法在小规模上效果好&#xff0c;但Youtobe规模很大。 &#xff08;2&#xff09;新颖度。Youtobe语料库是动态的&#xff0c;每秒都会有…

Windows如何安装JDK

JDK和JRE简介 JDK&#xff1a;Java Development ToolKit java开发工具包&#xff0c;包含JRE针对java程序开发者 JRE&#xff1a;Java Runtime Environment java程序的运行环境针对java使用者来说 下载JDK&#xff0c;进入官网下载 Oracle官网 双击下载好之后的exe文件&#…

关于Python中install edge_tts记录

如下代码&#xff1a; #!/usr/bin/env python3""" Basic audio streaming example.This example shows how to stream the audio data from the TTS engine, and how to get the WordBoundary events from the engine (which could be ignored if not needed).…