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

深入解析:【图像处理】图片的前向映射与后向映射

参考博客:https://blog.csdn.net/fengdu78/article/details/106369059

一、前向映射与后向映射

1.1 前向映射

图像的几何变换就是建立一种源图像像素与变换后的图像像素之间的映射关系。也正是凭借此种映射关系可以知道原图像任意像素点变换后的坐标,或者是变换后的图像在原图像的坐标位置等。

用简单的数学公式可以表示为:

( x y ) = ( U ( u , v ) V ( u , v ) ) \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} U(u, v) \\ V(u, v) \end{pmatrix}(xy)=(U(u,v)V(u,v))
f ( u , v ) = ( x , y ) f(u, v) = (x, y)f(u,v)=(x,y)

其中,x,y代表输出图像像素的坐标,u,v表示输入图像的像素坐标,而U,V表示的是两种映射关系,f是将点(u,v)映射到(x,y)的映射关系,得说明的是,映射关系可以是线性关系,也可能是多项式关系。

从上面的映射关系允许看到,只要给出了图像上任意的像素坐标,都能够经过对应的映射关系获得几何变换后的像素坐标。

这种将输入映射到输出的过程我们称之为 “向前映射”。但是在实际应用中,向前映射会出现如下几个问题:

  1. 浮点数坐标,如(1,1)映射为(0.5,0.5),显然这是一个无效的坐标,这时我们需要使用插值算法进行进一步处理。
  2. 可能会有多个像素坐标映射到输出图像的同一位置,也可能输出图像的某些位置完全没有相应的输入图像像素与它匹配,也就是没有被映射到,造成有规律的空洞(黑色的蜂窝状)。

什么是有规律的空洞呢?下面举个例子大家就明白了

1.2 向后映射

为了克服前向映射的这些不足,因此引进了“后向映射”,它的数学表达式为:

f − 1 ( x , y ) = ( u , v ) f^{-1}(x,y) = (u,v)f1(x,y)=(u,v)

通过由输出图像的像素坐标反过来推算该像素为在源图像中的坐标位置。这样,输出图像的每个像素值都能够通过这个映射关系找到对应的为止。而不会造成上面所提到的映射不完全和映射重叠的现象。就是能够看出,后向映射与前向映射刚好相反,它

  • 在实际处理中基本上都运用向后映射来进行图像的几何变换。但是反向映射也有一个和前向映射一样的困难, 就是映射后会有小数,需通过插值方法决定输出图像该位置的值,OpenCV默认为双线性插值。

  • 在采用过程中,倘若在一些不改变图像大小的几何变换中,向前映射还是十分有效的,向后映射首要运用在图像的旋转的缩放中,因为这些几何变换都会改变图像的大小。

更多资料:https://github.com/0voice

http://www.jsqmd.com/news/83830/

相关文章:

  • 小V健身助手开发手记(四):打造专属健康空间——以 PersonContent构建统一风格的个人中心
  • RPCS3完全配置手册:从零开始搭建高性能PS3模拟环境
  • 快手带货公司哪家好,优秀企业推荐 - 速递信息
  • 上海快手代运营公司哪家好,十家优秀企业推荐 - 速递信息
  • 【C++14算法】make_unique
  • 终极指南:Artillery负载测试3分钟快速入门 [特殊字符]
  • Node.js BFF层实战:对接天远综合多头借贷/逾期/欺诈聚合接口
  • 深入理解连接错误:从 “ld returned 1“到系统性解决方案
  • 实用指南:逆向基础--汇编基础(CS与IP) (05)
  • 深度残差网络在智能垃圾分类中的技术实践与性能分析
  • Vue2如何设计大文件上传的交互界面与用户体验?
  • TinyMCE4支持微信公众号内容转存CMS
  • Android16 EDLA 认证测试CTS问题分析解决
  • 10个BlenderMCP像素化技巧:让你的3D模型瞬间变身复古游戏资产
  • JS如何结合AES加密实现大文件上传的安全存储?
  • 正点原子imx6ull Qt界面显示bmp280气压值
  • 20、集群节点与实例的添加和删除操作指南
  • wangEditor处理OA系统word文档批量上传
  • DPARSF预处理
  • 本地部署文档管理系统 Paperless-ngx 并实现外部访问
  • 在 Windows PowerShell 中实现类 Linux 的后台任务与作业控制
  • JavaScript如何实现大文件上传的断点续传与秒传?
  • Termux安全防护终极指南:构建零信任移动开发环境
  • 基础-函数:
  • 竖屏视频变横屏不损失画质的方法,新手1分钟改变画框
  • 如何快速掌握机械振动信号分析:完整实战指南
  • 本地部署交互式计算平台 JupyterLab 并实现外部访问( Linux 版本)
  • 23、适用于Linux环境的Oracle数据库基准测试工具:Hammerora与Swingbench
  • Electron自动更新终极解决方案:从零构建高效分发体系
  • wangEditor支持信创系统word粘贴兼容处理