【图像处理】图片的前向映射与后向映射

参考博客: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. 可能会有多个像素坐标映射到输出图像的同一位置,也可能输出图像的某些位置完全没有相应的输入图像像素与它匹配,也就是没有被映射到,造成有规律的空洞(黑色的蜂窝状)。

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

  • 可以从下图知道:原图经过前向映射旋转了30度后,输出图像中有规律的空洞(黑色的蜂窝状),那这些空洞是这么来的呢?
  • 可以看到,旋转三十度后,输出图像两个红色的点被映射到同一个坐标,而没有点被映射到绿色问号处,这就造成了间隙和重叠,导致出现蜂窝状空洞。

1.2 向后映射

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

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

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

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

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

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

相关推荐
Akir.weiwen1 分钟前
AI 总把红色用错地方?你需要一张“颜色使用说明书“
人工智能·设计规范
mykj155125 分钟前
AI景区抓拍系统搭建让旅游多一层乐趣
人工智能·旅游·景区ai抓拍系统·ai抓拍小程序
donoot30 分钟前
《大话文渊慧典》:外二篇-Tesseract+OpenCV自制OCR,我写了三百个if-else,最后代码成了玄学
人工智能·aigc·文渊慧典·大话系列
延凡科技37 分钟前
延凡科技电力数字化平台技术解析:从电力交易到虚拟电厂的全链路架构实践
人工智能·科技·物联网·架构·虚拟电厂·电力平台
Staticy1 小时前
Claude Code 接国产模型不能识图?一个 MCP 让纯文本模型也能看图
人工智能·ai编程·全栈
极梦网络无忧1 小时前
real-ai-editor:一款轻量、智能的纯前端 AI 富文本与 Markdown 编辑器
前端·人工智能·编辑器
phltxy1 小时前
LangChain v1 Agent核心能力详解
大数据·人工智能·langchain
吴佳浩1 小时前
AI 核心技术解析|OPD:大模型开始复制的不再是知识,而是判断力
人工智能·深度学习·llm
数智化管理手记2 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
thesky1234562 小时前
27届大模型岗面试准备(五):预训练全流程拆解——从数据清洗到 Tokenizer 再到 PT 的每
人工智能·面试·大模型·预训练·tokenizer