OpenCV几何图像变换

简介

接下来的时间我将继续学习几何图像变换部分,几何图像变换是指一系列用于图像处理和计算机视觉中的操作,用于改变图像的空间特性。这些变换包括缩放、旋转、平移、错切以及透视变换等。它们常用于诸如图像对齐、校正、视角转换等任务。

几何图像变换的基本概念和工作原理

本节中的函数执行各种二维图像的几何变换。它们不改变图像的内容,而是变形像素网格并将此变形网格映射到目标图像。事实上,为了避免采样伪影,映射是按相反顺序进行的,即从目标图像到源图像。也就是说,对于目标图像中的每个像素 (x, y),函数计算出相应"捐赠"像素在源图像中的坐标,并复制该像素值:
dst ( x , y ) = src ( f x ( x , y ) , f y ( x , y ) ) \texttt{dst} (x,y)= \texttt{src} (f_x(x,y), f_y(x,y)) dst(x,y)=src(fx(x,y),fy(x,y))

在您指定前向映射 < g x , g y > : src → dst \left<g_x, g_y\right>: \texttt{src} \rightarrow \texttt{dst} ⟨gx,gy⟩:src→dst的情况下,OpenCV 函数首先计算对应的逆向映射 < f x , f y > : dst → src \left<f_x, f_y\right>: \texttt{dst} \rightarrow \texttt{src} ⟨fx,fy⟩:dst→src, 然后使用上述公式

实际实现从最通用的 remap 到最简单最快的 resize 的几何变换,需要解决上述公式的两个主要问题:

  • 不存在像素的外推 :与上一节中描述的过滤函数类似,对于某些 ( x , y ) (x,y) (x,y), f x ( x , y ) f_x(x,y) fx(x,y)或 f y ( x , y ) f_y(x,y) fy(x,y)或两者都可能落在图像之外。在这种情况下,需要使用一种外推方法。OpenCV 提供了与过滤函数中相同的外推方法选择。此外,它还提供了 BORDER_TRANSPARENT 方法。这意味着目标图像中对应的像素根本不会被修改。
  • 像素值插值 :通常, f x ( x , y ) f_x(x,y) fx(x,y)或 f y ( x , y ) f_y(x,y) fy(x,y)是浮点数。这意味着 < f x , f y > \left<f_x, f_y\right> ⟨fx,fy⟩可以是仿射变换、透视变换或径向镜头失真校正等。因此,需要从分数坐标中检索像素值。最简单的情况下,坐标可以四舍五入到最近的整数坐标,并使用相应的像素。这被称为最近邻插值。然而,通过使用更复杂的插值方法可以获得更好的结果,其中在计算像素 ( f x ( x , y ) , f y ( x , y ) ) (f_x(x,y), f_y(x,y)) (fx(x,y),fy(x,y)),的某个邻域内拟合多项式函数,然后取该多项式在 ( f x ( x , y ) , f y ( x , y ) ) (f_x(x,y), f_y(x,y)) (fx(x,y),fy(x,y)) 处的值作为插值像素值。在 OpenCV 中,您可以选择几种插值方法。有关详情,请参阅 resize 函数。

注: 几何变换不适用于 CV_8S 或 CV_32S 类型的图像。

相关推荐
飞哥数智坊9 小时前
GPT-5-Codex 发布,Codex 正在取代 Claude
人工智能·ai编程
倔强青铜三9 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
虫无涯10 小时前
Dify Agent + AntV 实战:从 0 到 1 打造数据可视化解决方案
人工智能
Dm_dotnet12 小时前
公益站Agent Router注册送200刀额度竟然是真的
人工智能
算家计算12 小时前
7B参数拿下30个世界第一!Hunyuan-MT-7B本地部署教程:腾讯混元开源业界首个翻译集成模型
人工智能·开源
机器之心12 小时前
LLM开源2.0大洗牌:60个出局,39个上桌,AI Coding疯魔,TensorFlow已死
人工智能·openai
Juchecar13 小时前
交叉熵:深度学习中最常用的损失函数
人工智能
林木森ai13 小时前
爆款AI动物运动会视频,用Coze(扣子)一键搞定全流程(附保姆级拆解)
人工智能·aigc
聚客AI14 小时前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
BeerBear15 小时前
【保姆级教程-从0开始开发MCP服务器】一、MCP学习压根没有你想象得那么难!.md
人工智能·mcp