当图像中原本应该是直线的地方看起来发生了不自然的变形或扭曲时,我们称为图像畸变。有三种类型的镜头畸变:桶形畸变(后文使用英文barrel),枕形畸变(后文使用pincushion)和胡子畸变(后文使用英文wave或mustache,这种畸变里包含了桶形畸变和枕形畸变)。有一个重要的点需要注意,根据透镜的类型以及透镜是否能够从相机中移除等条件不同,畸变会有不同的表现。

总的来说,旋转对称光学系统功能上会产生和物体几何相似的图形。但也有少数特殊的系统是例外,例如鱼眼镜头,这种镜头几何是故意设计为何物体的几何不一致的。理想情况下,光学系统的功能根据透视投影的几何形状来实现。但实际结果和理想状态的图像几何会有偏差,这个偏差叫做畸变。

桶形(barrel)畸变例子

枕形(pinchushion)畸变例子

如何测量畸变

ISO90391标准定义了一些方法来测量和相机分离开来的镜头的畸变。但有些情况我们没有办法将镜头和相机分离开(比如手机中的摄像头),因此ISO 90391里描述的非常耗时的方法不够。因此,ISO 17850被用来测量相机镜头组合到一起的畸变。

TV 畸变方法(ISO 9039)

最早的使用相机镜头组合的畸变测量方法是TV畸变方法,这个方法用来分析TV摄像机系统。此方法需要一个测试图卡,图卡带有规则的几何结构的方格,比如下图的TE260和TE251这两种图表常常用来测量畸变。

TE260点图

TE261格子图

TV畸变方法本质上是一个从图像中心到角落展现出稳定增长的畸变特性的系统。原始图像中直线的弯曲在图像的上边缘(top edge)处被量化。沿着图像的高度方向弯曲的比率乘以100是图像高度畸变的百分比。这个方法和EBU Tech 3249里描述的过程是兼容的。

图片高度畸变(桶形)

图片高度畸变(枕形)

直线几何畸变方法(Line geometric distortion method)(ISO 17850)

一些特定的镜头系统(特别是在移动设备中的小型系统)会在最大的图像高度上进行畸变校正。这些系统在距离光学中心较近处展现出最高的畸变级别。最终产生的畸变类型通常是barrel和pincushion畸变的混合,用术语wave distortion来描述。

直线几何畸变

直线几何畸变测试的图卡是直线网格形式的图,如下所示

测试图卡:line grid pattern

对于带wave畸变的系统,测试的图像高度方向的畸变值能够是0或接近0,即使此时图像中可见的畸变非常厉害。

我们将直线几何畸变方法划分为三个不同的方法来测量这些系统的畸变,在ISO17850标准中所指定。

1)水平直线畸变

记Ai为不同图片高度(这里高度的意思是line grid pattern图的相关线对(line pair)的垂直距离)的line grid pattern输出图像的最大高度值,Bi为最小值。输出图像的帧短边的像素个数记为V。

当垂直线Ai距离图像中心的垂直线比Bi更近时,使用方程:

否则,使用方程[3]:

i表示每种图片高度的下标

2)垂直直线畸变

为不同图片宽度(这里宽度的意思是line grid pattern图的相关线对(line pair)的水平距离)的line grid pattern输出图像的最大宽度值,为最小值。输出图像的帧短边的像素个数记为V。

当水平线距离图像中心的水平线比 更近时,使用方程:

否则,使用方程[5]:

i表示每种图片宽度的下标

3)总的直线畸变

每种图像大小中,直线几何畸变被定义为方程:

总的直线几何畸变Dline的值,被定义为绝对值最大的

局部几何畸变方法(Local geometric distortion method)(ISO 17850)

局部几何畸变值(%)定义为如下方程:

表示实际的点到图像中心的距离

表示理想的点到图像中心的距离

这里有一个假设是图像的中心是没有畸变的。因此能够从图像中心处的部分点的位置估算出来。每个检测点提供出一个局部几何畸变值.如果畸变是旋转完全对称的,那么会被描绘成一个单值函数,这个函数的变量是到图像中心的距离。

实际算法概述

1. 提取出点

2. 精确确定出点的中心位置

3. 对比这些点的实际位置和点的理想位置

4. 计算平均网格间距向量

5. 图像的重心被认为是[0,0]网格位置,所有理想的网格位置都通过一个位置值为整数的网格计算而来。

6. 一个网格位置的几何畸变值是实际网格位置的径向距离和理想网格位置的径向距离之差,除以。如果<,畸变值为负,否则为正。

7. 上面的几何畸变值每个合法的网格位置都会计算,这样就提供了镜头畸变的一个2D数据集。

8. 几何畸变被绘制为针对每个网格位置的,到图像中心的实际径向距离()的函数。

参考资料

https://www.doc88.com/p-3877892515748.html

图像质量评估(5) -- 畸变(Distortion)相关推荐

  1. 图像质量评估-BRISQUE

    1. 介绍 1.1 什么是图像质量评估Image Quality Assessment (IQA)? 图像质量评价(IQA)算法以任意图像作为输入,输出质量分数作为输出.有三种类型的IQA: 全参考图 ...

  2. 图像质量评估(IQA)基础知识

    图像质量评估(IQA)基础知识 全参.半参和无参 常用衡量标准 http://blog.csdn.net/caoleiwe/article/details/49045633 本研究采用三个常用的性能指 ...

  3. 超声图像质量评估论文综述

    已经开发出许多专用于医学图像后处理的算法,从而提出了有关此类图像评估的根本问题.主观评估是评估医学领域质量的最可靠方法.但是,由于人类观察者必须具有医学背景,因此在医学应用中既费时又困难.客观指标是一 ...

  4. 读“基于机器学习的无参考图像质量评估综述”有感

    读"基于机器学习的无参考图像质量评估综述"有感 摘要: 无参数图像质量评价(NRIQA)因其广泛的应用需求一直以来都是计算机视觉及其交叉领域的研究热点.回顾近十几年来基于机器学习的 ...

  5. MUSIQ: Multi-scale Image Quality Transformer【图像质量评估】

    MUSIQ: Multi-scale Image Quality Transformer MUSIQ:Transformer多尺度图像质量评估 paper:https://arxiv.org/abs/ ...

  6. 图像质量评估(IQA)——“KonCept512” 论文解读

    今天是1024程序员的节日,也是许久没有更新博客了,特地百忙抽空记录一篇博文. 解读之前,论文链接就不放了,网上有比较多的下载资源,先放上该论文的引用信息: Hosu V, Lin H, Sziran ...

  7. 图像质量评估指标:MSE,PSNR,SSIM

    文章目录 MSE与PSNR的计算方法 MSE与PSNR的问题 SSIM的理念与计算方法 理念 概念准备 公式理解 基本元素 三原则 亮度.对比度.结构的相似度指标设计 最终公式 程序计算方法 计算公式 ...

  8. 怎么去除图像亮度对图像质量评价的影响_图像质量评估指标 SSIM / PSNR / MSE

    Visibility of Errors 计算图像degrade后的质量,最 direct 的思路即比较degrade后的图像与真实图像(distortion-free)之间的差剖面,即可视误差,通过 ...

  9. 【论文review+总结】屏幕内容图像质量评估SC-IQA(Screen Content Image Quality Assessment)

    目录 论文review 2017年论文 2018年论文 2019年论文 总结 主要思路 主要方法总结 全参考FR-IQA 弱参考RR-IQA 无参考NR-IQA 多内容(不只局限于SCIs--基于cr ...

最新文章

  1. 2021年码农应该了解的所有机器学习算法
  2. 使用System.IO.Packaging.Package进行文件压缩所产生的问题
  3. ctf安全竞赛入门pdf_CTF安全竞赛入门
  4. 深刻理解Python中的元类(metaclass)以及元类实现单例模式
  5. Python中常用字符串 函数-转
  6. A English version for my blog start.
  7. 简单实现KeyChain实例
  8. Spring 3和Java EE 6 –不公平和不完整的比较
  9. 计算机网络技术教材多少钱,计算机网络技术课程标准教材.doc
  10. React Native FlatList和SectionList列表组件
  11. Git命令:git常用命令
  12. 毕业之际,个人学习感言和收获
  13. Python基础练习-002-求1000以内的完全数
  14. 史上最全人工智能英文原版PDF教材1.03G资源包Artificial Intelligence
  15. CDlinux万能无线破解系统iSO中文版 U盘启动版
  16. 电影光盘的vob格式视频如何转换成mp4格式
  17. (一)D3D9渲染原理
  18. 全球与中国大麻化妆品市场深度研究分析报告
  19. 直播系统定制开发中安卓直播间websocket协议破解还原
  20. 【正点原子I.MX6U-MINI应用篇】1、编写第一个应用App程序helloworld

热门文章

  1. 6.10初步建立项目
  2. C语言再学习 -- EOF、feof函数、ferror函数
  3. Java中的抽象类可以有构造函数吗?/抽象类中的构造方法作用是什么?
  4. 中央空调安装html5模板,安装需谨慎 家用中央空调安装注意事项
  5. 头歌5.1.1触发器 第二关
  6. Leetcode word break I II 词句拆分I和II的java实现及解析
  7. 保序回归-isotonic regresion
  8. 国美金融贷款构建Hadoop 系统架构(国美金融贷款分支)
  9. 【MAPBOX基础功能】23、mapbox通过marker的方式绘制波纹点位
  10. 量化交易——传统技术分析随机震荡指标STO的原理及实现