仿射变换(一)

Emgucv实现高拍仪功能(一)——仿射变换与透射变换 忙了N久长时间没有更新博客了,追问的人很多,你们赢了,上来分享下最近做的图像相关。 目标是要求我做一个全能扫描王一样的应用,前前后后需求改了好几版,分开来每种方案都能实现,合并起来想全能谈何容易。 其实最终目标就是找到图片中的纸张并还原成标准矩形么,前前后后做了三个版本,把经历的坑分享一下,具体代码就保密了,毕竟做的是产品,要为对方老板负责。 方案一: 自适应二值,查找最大轮廓,霍夫直线检测... 阅读详情

这几天在看代码的时候,突然看到仿射变换这个词,于是找了些资料看,现在结合自己对仿射变换的一些知识写一点体会:

反射变换原理:

如图所示,设x,y为数字化仪坐标(原坐标),X,Y为理论坐标(新坐标),m1,m2为地图横向和纵向的实际比例尺,两坐标系夹角为a,数字化仪原点O'相对于理论坐标系原点平移了a0,b0.

            

上面第一个式子X=a0+(m1*cosa)*x+(m2*sina)*y与Y=b0-(m1*sina)*x+(m2*cosa)*y的理解:

首先m1:是指(个人理解)x轴方向的比例尺,m2:是指(个人理解)y轴方向的比例尺;这里角a为负角,因为从原x轴到新x轴为顺时针;

其次,(m1*cosa)*x是原x轴投影到新x轴的位移;

再次:(m2*sina)*y是原y轴投影到新y轴的位移;

第二个式子理解:

-(m1*sina)*x:为原x坐标在新Y轴上的投影(或者说原x坐标对新Y轴所做的贡献)

(m2*cosa)*y:为原y坐标在新Y轴上的投影(或者说原x坐标对新Y轴所做的贡献);

其实,上面这些投影,只要理解为高一时我们学力的时候,将力分解成两部分,这样就比较容易理解;另外,要注意这个角a的正负,如果原坐标旋转到新坐标是顺时针的话,角为负,如果原坐标旋转到新坐标是逆时针的话,角为正;这个例子中的角a是负的;

对于角a是正的情况,以上两个式子将改为:

X=a0+(m1*cosa)*x-(m2*sina)*y

Y=b0+(m1*sina)*x+(m2*cosa)*y

未完待续

 

 

halcon学习笔记(一)毛边检测 仿射变换+标准区域登陆检测内外边缘毛边 一、中级视频教程毛刺检测: 实现功能,检测突出产品外围突出的毛刺: 1.先获取背景的区域,用 binary_threshold()获取背景区域A; 2.背景区域进行闭运算得到闭运算区域B 3.用difference()算子计算AB两个区域的补集C; 4.对C进行开运算,使边缘平滑。记得到边缘突出的毛刺 使用到的算子: binary_threshold()自动全局阈值,得到背景获背景和前景,适合使用在背景和前景差异明显的图像检测; difference()得到两区域补集 area_cent. 阅读详情

相关推荐

HALCON联合C#检测表面缺陷——仿射变换(一)

前面我们说到了模板匹配中的形状匹配,后面有机会我们再说其他的模板匹配,我们先说一下,仿射变换。 说到仿射变换。我们先来复习一下模板匹配的意义是什么? 它是为仿射变换提供依据,模板匹配是建立坐标系,仿射变换是把区域根据坐标系偏移和旋转到我们需要的位置 下图左边启动位置修正,即使用仿射变换;右边未启用位置修正,即未使用仿射变换。 牛头是模板,我们可以认定牛头中心就是坐标原点,牛头旋转偏移了多少,那么顶部的方形区域也应该旋转偏移多少。 通过上面的解释,我想大家对于仿射变换有了初步的了解。 中间的篇

奔跑的郑的博客 1536

【数学篇】09 # 如何用仿射变换对几何图形进行坐标变换?

【跟月影学可视化】学习笔记。仿射变换简单来说就是。仿射变换具有 2 个性质;向量 P(x0, y0) 沿着向量 Q(x1, y1) 平移,平移后的向量 p 的坐标。假设向量 P 的长度为 r,角度是⍺,现在将它逆时针旋转⍬角,此时新的向量 的参数方程为: rcos⍺、rsin⍺是向量 P 原始的坐标 (x0,y0),可以写成下面这个公式: 用矩阵表示就是下面的公式:向量与标量(标量只有大小、没有方向)相乘即可。 用矩阵表示就是下面的公式:上面的旋转和缩放都可以写成矩阵与向量相乘的形式。这种能写成矩阵与向

学习前端这门手艺,栈底到栈顶依次是:浏览器架构、Web 网络、事件循环机制、JavaScript 核心、V8 的内存管理、浏览器的渲染流程、Web 安全、CSS、React、Vue、Node、构建工具链等 2151

Halcon我的基础教程(一)(我的菜鸟教程笔记)-halcon仿射变换(Affine Transformation)的探究与学习

Halcon我的基础教程(一)(我的菜鸟教程笔记)-halcon仿射变换(Affine Transformation)的探究与学习

视觉人机器视觉的博客 1119

一文读懂图像中点的坐标变换(刚体变换,相似变换,仿射变换,投影变换)

0 前言 现在的人脸图像识别流程中有一个步骤叫人脸对齐,现在的一般方法是采用人脸上的关键点坐标,进行相似变换来实现人脸校正。多次在人脸识别的论文中看到 similarity transform,由于在线代和矩阵分析的课上一直划水。对相似变换也是一知半解,今天决定不惜一下相关的知识。大部分的内容都是参考网上大神的,这里只是做个整理。下面的阐述主要以二维坐标为例,多维空间的左边点,可以通过增加变换矩阵...

Lavi的专栏 3万+

【Aseprite】制作Unity2D瓦片地图素材(平台游戏)

本文章用于记录用Aseprite软件制作2D平台游戏的瓦片地图的方法。

凡心所向,素履以往 5543

Autojs实战教程---番茄免费小说Apk文件和源码

邀请码:782383363 字节跳到的App,推荐给大家,还是值得用一用的。不废话直接代码。 代码是带UI的复制后可以直接使用。 "ui"; //#region UI var rootUrl = "http://114.115.220.1:91";//各位大神小弟自己的服务器别黑谢谢 var storaySign = "FanqieXiaoShuo0412326@163.com"; var woolStorage = storages.create(storaySign);//创建本地存储 var

zy0412326的专栏 2万+

OpenSSL密码库算法笔记——第5.4.1章 椭圆曲线上点的仿射坐标表示

椭圆曲线上点的表示分成仿射坐标系表示和射影坐标表示形式,首先来看看仿射坐标表示形式。 素域Fp上的椭圆曲线E由(仿射)方程y2=x3+ax+b决定,设曲线上的两个点为P1=(x1,y1),P2=(x2,y2),并且记椭圆曲线加法群的单位元为,称为无穷远点或者零点。如果P1≠-P2,则P3=P1+P2=(x3,y3),可以由如下公式计算出来: ...

专注商用密码落地,方案与技术解析,分享密码技术与安全经验。 5万+

YOLOv8改进 | 主干网络 | 在backbone添加Swin-Transformer层【论文必备】

YOLOv8改进,Swin-Transform,YOLOv8添加Swin-Transform

kay_545 2367

仿射变换详解 warpAffine

今天遇到一个问题是关于仿射变换的,但是由于没有将仿射变换的具体原理型明白,看别人的代码看的很费解,最后终于在师兄的帮助下将原理弄明白了,我觉得最重要的是理解仿射变换可以看成是几种简单变换的复合实现, 具体实现形式即将几种简单变换的变换矩阵M相乘,这样就很容易理解啦   定义:仿射变换的功能是从二维坐标到二维坐标之间的线性变换,且保持二维图形的“平直性”和“平行性”。仿射变换可

q123456789098的专栏 2万+

Jetson Nano 实战指南:深度学习环境配置与 YOLOv5 边缘端部署解析

Jetson Nano是NVIDIA推出的嵌入式AI开发板,凭借其强大的GPU计算能力和完善的软件生态系统,成为边缘AI部署的理想平台。本教程源于作者团队参加2024中国机器人大赛暨RoboCup机器人世界杯中国赛机器人先进视觉3D识别赛道的实战经验,是一份经过验证的环境部署指南。

FJN110的博客 152

PCL点云DBSCAN聚类算法:基于密度的点云聚类

核心点是在给定半径内拥有足够多邻居点的点,边界点是在给定半径内没有足够多邻居点但是位于核心点的邻域内的点,噪声点是既不是核心点也不是边界点的点。本文将介绍PCL中的DBSCAN(基于密度的空间聚类应用噪声)算法,用于点云数据的聚类。上述示例代码首先从PCD文件中读取点云数据,并设置了DBSCAN聚类的参数,包括邻域搜索半径(epsilon)和邻域内最小点数(min_points)。需要注意的是,示例代码中的点云数据格式为pcl::PointXYZ,如果使用其他类型的点云数据,需要相应地修改代码。

LpmShell的博客 1237

介绍仿射变换

在数学和计算机图形学中,仿射变换(Affine Transformation)是一种在几何上对图形进行变换的方法,包括平移、缩放、旋转和倾斜等。仿射变换能够在保持图形的“平直性”和“平行性”的前提下,对图形进行各种线性变换和位移。仿射变换可以定义为将一个坐标点x\mathbf{x}x映射到新坐标x′x′x′Axbx′Axb其中,AAA是一个n×nn \times nn×n的矩阵,代表线性变换;b\mathbf{b}b是一个向量,代表平移;x。

chen的博客 2185

PMP--二模--解题--161-170

A:邀请团队成员在下一次回顾中分享经验。B:请求发起人增加具有所需经验的团队成员。C:在团队内计划知识共享会议。D:请求发起人为团队提供培训课程。A。

stqer的博客 1268

图像仿射变换(一)

此处参考opencv指导文档的定义,仿射变换是指任何可以表示为一个矩阵乘法,加一个向量的变换。其计算公式如图中所示,x和y分别代表输入图像上的位置,x’和y’代表输出图像的位置。A是一个2x2的矩阵,B是一个2x1的向量。A和B合并在一起,可以用M表示,M就是一个2x3的矩阵,也表述为仿射变换的转换矩阵。基本的仿射变换包括平移,缩放,旋转,错切。平移时,只需要考虑横向和纵向的偏移量B。缩放时,只考虑图像在横向和纵向的缩放比例,这两个方向上的缩放比例可以有差异。

qq_19069557的博客 758

HFSS实战项目——微带一分四功分器

呕心沥血保姆级教程!!!!手把手教会你做功分器,史上最详细步骤!!!

2401_87464239的博客 2673

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

光流估计(一)-- 仿射变换

图像仿射变换矩阵如何靠六个参数确定

木卯_THU的博客 6235

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

图形学总结一:使用矩阵进行仿射变换

图形学简单总结一 本文为闫令琪老师GAMES101-现代图形学入门基础课程的个人笔记。需要一定的线性代数基础,可以参考网友推荐线性代数的本质. 仿射变换 可能有的同学熟悉,这里的四种操作都是PhotoShop中Ctrl + T 的变形操作。以平面图形(二维)举例,屏幕中的每一个像素点都有一个(x,y)(x,y)(x,y)坐标的位置信息,以下给就是在变形时计算一点坐标的通用矩阵格式。 [a11a12a21a22][xy]=[a11x+a12ya21x+a22y] \begin{bmatrix} a_{11}&

weixin_44615552的博客 1048

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

opencv仿射变换和透视变换(一)理论篇

一、话说仿射变换和透视变换 对于平面区域,有两种方式的几何转换:一种是基于2×3矩阵进行的变换,叫仿射变换;另一种是基于3×3矩阵进行的变换,叫透视变换或者单应性映射。关于仿射变换和透射变换的矩阵变换,这篇博文不做重点讨论,因为图像本质就是矩阵,对矩阵的变换就是对图像像素的操作,很简单的数学知识。 仿射变换可以形象的表示成以下形式。一个平面内的任意平行四边形ABCD可以被仿射变换映射为另一个平...

$firecat利白的代码足迹$ 2169

图像中的几何变换(一) 仿射变换和透视变换

参考文章:OpenCV图像变换(仿射变换与透视变换)、图像处理的仿射变换与透视变换 3D视觉工坊 仿射变换(affine transform)和透视变换(perspective transform)在图像还原、图像局部变换处理方面有重要意义。其实仿射变换和透视变换更直观的叫法可以叫做「平面变换」和「空间变换」或者「二维坐标变换」和「三维坐标变换」。显然,这两种变换原理类似,结果也类似,只不过一个...

gloria_iris的博客 1695

循环体并行优化(一)——循环迭代空间的仿射变换

循环体并行优化(一)——循环迭代空间的仿射变换 (重新整理于2020年冬。)   最近痴迷于编译原理而不能自拔,这么多年来一直是会在某一段时间痴迷于一件事物,性格使然,无法自控。随着钻研深入,多年前的一个模糊的想法——搞一个自带针对多处理器系统并行优化的编译器,慢慢的发现这个想法并不是遥不可及了。在看了编译原理第二版的并行性和局部性优化章节的内容后,眼前突然豁然开朗。   在多核处理器横行的今天,我的手机上都有八个可以同时执行任务的处理器的年代,很难想象不用并行计算,要如何去榨取这些硬件的“剩余价值”。甚至

Gamebaby Rock Sun的博客 2162

python 仿射变换

PCV-chapter03 记录学习Python Computer Vision的过程 第三次 Homography(单应性变换) 图像变换的方法很多,单应性变换是其中一种方法,单应性变换会涉及到单应性矩阵。单应性变换的目标是通过给定的几个点(通常是4对点)来得到单应性矩阵。单应性变换是将一个平面内的点映射到另一个平面内的二维投影变换。平面指的是图像或者三维中平面表面,单应性变换的具有很强的实用性...

wzdbjl的博客 8751

【原创】循环体并行优化(一)——循环迭代空间的仿射变换

最近痴迷于编译原理而不能自拔,这么多年来一直是会在某一段时间痴迷于一件事物,性格使然,无法自控。随着钻研深入,多年前的一个模糊的想法——搞一个自带针对多处理器系统并行优化的编译器,慢慢的发现这个想法并不是遥不可及了。在看了编译原理第二版的并行性和局部性优化章节的内容后,眼前突然豁然开朗。 在多核处理器横行的今天,我的手机上都有八个可以同时执行任务的处理器的年代,很难想象不用并行处理如何去榨取这

Gamebaby Rock Sun的博客 1734

一图详解仿射变换的旋转矩阵推导

如图所示,有三条线段OA,OS,OT,线段端点的坐标分别是O(0,0),A(b,0),S(j,k),T(m,n); 三条线段的关系如下: OA顺时针旋转α度得到OS,OA顺时针旋转(α+β)度得到OT,OS顺时针旋转β度得到OT。 因为三条线段的长度相等,所以由三角函数可得到 1、OA顺时针旋转α度得到OS: j=cos(α)*b k=sin(α)*b 2、OA顺时针旋转(α+β)度

水石惊濑 3657

halcon学习之仿射变换1

1.根据仿射变换提供的变换矩阵,转化给定原点到目标点HHomMat2D hommat2d; hommat2d.HomMat2dIdentity();//产生一个均匀变换矩阵(单位矩阵,没有实质上转化影响) Hlong x = 4, y = 6; double result_x, result_y; hommat2d.AffineTransPixel(x,y,&resu

majunfu 4886

Halcon学习之仿射变换2

4.序列化一个均匀2D转换矩阵,将序列化矩阵,以二进制方式写入文件中//序列化一个均匀2D转换矩阵,将序列化矩阵,以二进制方式写入文件中 HSerializedItem item = hommat2d_scale.SerializeHomMat2d(); HFile file("affine.hobj", "output_binary"); item.FwriteSerial

majunfu 4805
上一篇: bmp位图相关知识
下一篇: 位结构体
willian0621
博客等级 码龄17年 50粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值