使用ctf-chart需要注意的一点是线对宽度需要结合摄像头测试的nyquist频率,视场,增距镜来确定,不然起不到有效管控模组解像力的要求。这个我有这套系统的计算方法,适合8M以下摄像头检测使用。优势是简单高效,缺点是需要根据不同的客户要求定制不同线宽的图卡。

0.计算过程

MTF算法主要利用了光学干涉的原理,一黑一白线对透过镜头投射到芯片上,此时芯片的像素对不同线宽密度的相对分辨能力不同,出现互相干涉,造成黑色变亮,亮条纹变暗。说到这里,线宽的选择非常重要。

计算公式也很简单MTF=(Vmax+Vmin)/(Vmax+Vmin),但实际计算中有比这个更好用的方法,我们在一些行业中发现MTF算法的确有很多种,可以参考软龙格自己开发几套MTF算法,虽然他们对外不公开,但基本的原则是遵循的。

博客中提及的算法经过有效验证,可以有效拦截在不同频率下的模组表现良好,及格,差等规格的产品。

此算法特别适合目前安防,车载行业计算使用,有自己整机产线的客户可以选择使用此算法开发一套整机测试程序。欢迎咨询,算法非公益。

1.先看效果图

2.再看原理

MTF算法的介绍如下:

对比度(contrast)是和acutance相联系的。显然,高对比度对应高acutance,低对比度对应低acutance。对比度和acutance可以互换,我们这里不区别其含义,尽管对比度有更广泛的含义,比如照片的整体对比度。sharpness是resolution和acutance的结合。如果一幅图像即有高的分辨率(resolution)和高的边缘锐度(acutance),那么我们说这幅图像具有高的sharpness。分辨率和边缘对比度任何一个不够高,这幅图画的sharpness都不够。所以,摄影里的sharpness指照片的整体清晰度。考虑到这些,摄影里的sharpness可能翻译成“清晰度”更合适,而“锐度”的含义留给acutance。下边我们就这样用:清晰度=sharpness,锐度=acutance,分辨率=resolution,对比度=contrast。(读国外的镜头测评文章,sharp和sharpness是常见到的词汇,比如说某个镜头very sharp。这个词的含义是确定的,指该镜头的解像力非常高,成像清晰:分辨率高,而且对比度复制准确;这和我们常说的某个镜头成像很锐是不一样的。我们说尼康镜头成像锐度高,是指色调边界的对比度高,清晰;比如树叶的边缘非常清晰。)

记住,清晰度=对比度+分辨率;或者,清晰度=锐度+分辨率。高的分辨率只能通过恰当使用好的仪器(相机和镜头)实现,后期无法获得。锐度则可以通过后期来增强。还有,不同的镜头厂家生产镜头的侧重点也不一样,比如蔡司和佳能重视分辨率,莱卡和尼康则重视锐度。

(二)镜头的MTF曲线

镜头的MTF曲线(MTF chart)是对镜头的解像力的一个定量描述,确切地说是对镜头成像的清晰程度(包含分辨率和锐度两个因素)的一个定量描述。MTF的数学含义是调制传递函数(Modulation Transfer Function),这是镜头设计工程师必须考虑的一个镜头特性函数。

所谓镜头的解像力,就是镜头如实地再现被摄物体质感(texture)的能力,是镜头成像质量的一个重要指标。用来测试镜头解像能力的被拍对象通常是如图所示的清晰黑白条纹:

这个黑白条纹包含了描述影像清晰度的两个基本要素:锐度,即黑白对比度,这里黑条纹和白条纹有清晰的边界;分辨率,即单位长度包含的黑白条纹数目,用“空间频率”(简称频率)来定量描述。在上边的黑白条纹图案里,空间频率是变化的,从左往右,黑白条纹宽度逐渐变窄,间隔逐渐变小;空间频率逐渐升高。左边是低频,右边是高频。

如果经过镜头成像之后,影像是跟原物一模一样的黑白明晰条纹(包括分辨率和锐度),这个镜头就有完美的解像力。然而,这样完美的镜头是不存在的,一般的镜头成像效果是这样的:

基于opencv的MTF算法开发相关推荐

  1. 基于OpenCV的 SVM算法实现数字识别(四)---代码实现

    三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...

  2. 基于opencv的SFR算法

    1.直接讲解SFR算法. 先来上一张算法结果图片: 1/2nyquist频率下的SFR值 1.准备未经过sharpen&gamma处理的图像,因为gamma将数据进行了非线性处理,sharpe ...

  3. 基于OpenCV的SSIM算法实现

    简介 最近接到了一个需求,需要对比图片并自动生成对比报表,核心功能就是获取图片相似度,生成表格. 这里仅介绍如何实现的图片相似度获取: 思路 相似度计算的算法选择的是SSIM算法,具体算法原理参考的是 ...

  4. 海康威视IP摄像头基于OPENCV的二次开发

    最近玩了一下海康的IPcamera,与普通的WEBcamera输出RGB图像不同,其解码后输出的图像格式为YV12,这使得我们不能用熟悉的两行代码 VideoCapture cap(0); cap & ...

  5. 基于opencv的cfar算法实现海岸线检测

  6. 一种基于OpenCV的三维重建实现方案

    一种基于OpenCV的三维重建实现方案 来源:淘金者论文范文 作者:Www.TaoJz.Com 日期:08/30/09 摘 要 本文以计算机视觉三维重建技术为研究对象,分析了开放计算机视觉函数库Ope ...

  7. 海康威视多摄像头实时视频预览(基于SDK的二次开发)

    项目背景 很久没有做工程项目了,最近突然接单,要做多摄像头下运动物体入侵检测及拌线检测,本文测试用到的摄像头是海康威视的DS-2CD23**D摄像头. 环境配置: 1.下载SDK 2.vs2010开发 ...

  8. android opencv 获取小图在大图的坐标_Android开发—基于OpenCV实现相机实时图像识别跟踪...

    利用OpenCV实现实时图像识别和图像跟踪 图像识别 什么是图像识别 图像识别,是指利用计算机对图像进行处理.分析和理解,以识别各种不同模式的目标和对像的技术.根据观测到的图像,对其中的物体分辨其类别 ...

  9. 基于OpenCV和C++实现最大阈值分割算法

    代码如下:: /******************************************************************************************** ...

  10. 【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目

    车牌识别基础功能演示 摘要:车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符.英文字母.阿 ...

最新文章

  1. Nature子刊:提高作物产量?农作物微生物组是关键
  2. 《代码阅读方法与实践》阅读笔记一
  3. oracle管理mysql_oracle表管理
  4. ES6中的模板字符串---反引号``
  5. 良性计算机病毒对计算有没有危害机系统,154、计算机病毒有良性和恶性之分,其中, – 手机爱问...
  6. php上传大文件500错误,PHP fastcgi模式大文件上传500错误
  7. 服务器协议热更_汽车和电话的开放协议,以及更多开放源新闻
  8. poj--3984--迷宫问题(bfs+路径记录)
  9. 剑指offerJZ1 二维数组中的查找 C++ python
  10. JSON字符串,JSON对象的相互转换
  11. PBRT的scene.pbrt使用方法
  12. oracle财务软件凭证打印,ORACLE财务软件简明操作文档.doc
  13. 【出国面试】出国 交换 / 访学 / 留学 国外导师面试经验分享
  14. ECCV 2022 旷视入选论文亮点解读(上)
  15. 树莓派中文输入法安装
  16. PS制作文字扫描效果(仿旧效果)
  17. VB中If与ElseIf的区别
  18. 利用声音传感器控制led灯功能_树莓派 LED+蜂鸣+声音传感器+红外模块组合打造声控/红外控制LED...
  19. 关于RoboMaster2019新型能量机关的一些感想(大风车)
  20. 继电器学习笔记(一)——继电器的分类电磁继电器和磁保持继电器的工作原理

热门文章

  1. Dell PowerEdge R750 Intel DAOS 顺利通过“HighPerf Ready 1.0”测试
  2. WIFISON使用及适配
  3. c语言编程培训都是小学,小学编程培训班明故宫哪里有C语言培训
  4. 中央处理器(CPU)—— CPU的功能和基本结构
  5. 外来工作人员如何提取上海住房公积金
  6. c++编译报错:ld returned 1 exit status
  7. 以太坊 solidity msg对象
  8. CPS基本概念(信息物理融合系统)------1
  9. Batch Normalization论文翻译——中文版
  10. R语言结构方程模型(SEM)在生态学领域中的实践应用