用数码相机拍摄景物中,如果有密纹的纹理,常常会出现莫名其妙的水波样条纹。这就是摩尔纹。最近关于摩尔纹讨论比较多,本文就摩尔纹的原理及其产生条件作一些分析。

简单的说,摩尔纹是差拍原理的一种表现。从数学上讲,两个频率接近的等幅正弦波叠加,合成信号的幅度将按照两个频率之差变化。差拍原理广泛应用到广播电视和通信中,用来变频、调制等。

同样,差拍原理也适用于空间频率。空间频率略有差异的条纹叠加,由于条纹间隔的差异、重合位置会逐渐偏移,也会形成差拍。

图1是两个空间频率略有差异的条纹,它们左端黑线位置相同,由于间隔不同,向右边逐渐线条就不能重合了。

图1

图2是这两个条纹重叠的结果,左边由于黑线重合,所以可以看到白线。而右边逐步错位、白线对着黑线,重叠结果变得全黑。有白线和全黑的变化,组成了摩尔纹。为了让大家看到摩尔纹产生过程,两组条纹没有完全重合,上下各有一段独立。

图2

图3的两个条纹的空间频率相差较大,结果在画面中出现了四次重合-错位过程,形成的摩尔纹空间频率提高了4倍!

图3

图4:将图3的两组条纹完全重合、后退几步去掉眼镜,就可以看到典型的摩尔纹了!

图4

图5、图6:如果空间频率相差很大,理论上将形成很密的摩尔纹。而实际上由于每个周期所占的像素减少、反而不明显了!

图5

图6

从上面分析可以看出:如果感光元件CCD(CMOS)像素的空间频率与影像中条纹的空间频率接近,就会产生摩尔纹。一个很不幸的结论就是:要想消除摩尔纹,应当使镜头分辨率远小于感光元件的空间频率!当这个条件满足时,影像中不可能出现与感光元件相近的条纹,也就不会产生摩尔纹了!据说数码相机中为了减弱摩尔纹,安装有低通滤波器滤除影像中较高空间频率部分,这当然会降低图像的锐度。将来的数码相机如果像素密度能够大大提高、远远超过镜头分辨率,也就不会出现讨厌的摩尔纹了!

很明显,胶片记录影像的过程中不存在规律分布的像素,也就没有固定的空间频率,所以也不会出现摩尔纹!

摩尔纹的原理与产生条件(写的较好)相关推荐

  1. 摩尔纹的原理与产生条件

    用数码相机拍摄景物中,如果有密纹的纹理,常常会出现莫名其妙的水波样条纹.这就是摩尔纹.最近关于摩尔纹讨论比较多,本文就摩尔纹的原理及其产生条件作一些分析. 简单的说,摩尔纹是差拍原理的一种表现.从数学 ...

  2. 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理

    动态代理 代理模式是设计模式中非常重要的一种类型,而设计模式又是编程中非常重要的知识点,特别是在业务系统的重构中,更是有举足轻重的地位.代理模式从类型上来说,可以分为静态代理和动态代理两种类型. 在解 ...

  3. 多表关联查询过滤条件写在on与where后的区别

    点击上方"蓝字" 关注我们,享更多干货! SQL优化过程中,发现开发人员在写多表关联查询的时候,对于谓词过滤条件的写法很随意,写在on后面与where后面的情况均有,这可能会导致没 ...

  4. 依照以下条件写出合适的XML Schema.

    依照以下条件写出合适的XML Schema. (1)父元素为Motorcycle. (2)元素有一个属性名称为motorid,类型为正整数,且一定要输入. (3)一个Brand子元素,类型为字符串,记 ...

  5. 深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别

    深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别 一.前言 二.网络结构 三.可解释性 四.记忆主线 五.遗忘门 六.输入门 七.输出门 八.手写数字识别实战 8.1 引入依赖库 8. ...

  6. 把条件写在 join on 后面和写到where后面的区别

    部分转载:https://www.cnblogs.com/zsq23837880/p/7040923.html 前两天面试,遇到了一道题.说的是LEFT JOIN关联表中ON,WHERE后面跟条件的区 ...

  7. 基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了

    基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪,新的编程语言如雨后春笋一样不停地冒出来.需求当然是重要的驱动力量,但是在其中起了重要作用的就是工具链的改善. 2000年 ...

  8. 学了编译原理能否用 Java 写一个编译器或解释器?

    16 个回答 默认排序​ RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...

  9. 深入Lock锁底层原理实现,手写一个可重入锁

    synchronized与lock lock是一个接口,而synchronized是在JVM层面实现的.synchronized释放锁有两种方式: 获取锁的线程执行完同步代码,释放锁 . 线程执行发生 ...

最新文章

  1. 怀化学院计算机科学张显老师,怀化学院:计算机“华山论剑”获佳绩
  2. 项目进度,你汇报清楚了么?
  3. 干粮 -- 计算机程序设计艺术(The Art of Computer Design) - 2
  4. php的server和location,3、Nginx关于server块和location块的配置
  5. img disabled可以用什么替代_本特:马内不可替代,菲米是粘合剂,萨拉赫可以用姆巴佩桑乔替代...
  6. 爬虫实战:使用Selenium爬取京东宝贝信息
  7. strlen 与 sizeof
  8. 让你的 Qt 桌面程序看上去更加 native(三):自定义 style
  9. element ui下拉框实现
  10. 百度搜索引擎关键字URL采集爬虫优化行业定投方案高效获得行业流量-笔记篇
  11. 心音与心电信号分析之一--6.26--心音信号检测系统软件设计
  12. 交换机 VLAN配置基础及实例
  13. 《计算机组成原理》第五版(唐朔飞考研版) 全书知识梳理
  14. RF-接口自动化测试-「参数Parameters格式」
  15. 十天学会单片机(3)发光管闪烁,蜂鸣器发声
  16. 计算机sci期刊 周期短,周期短的SCI期刊有哪些
  17. IOS程序员(新人入职一周)
  18. true在java_使用truelicense实现用于JAVA工程license机制
  19. mysql投影和选择区别_关系运算里面,“选择”和“投影”区分?
  20. ios视频直播SDK集成指引

热门文章

  1. 火车头采集器保存任意格式-免费火车头采集发布配置教程
  2. 图解不动产登记之微信预约功能设计
  3. Realsense与英伟达Jetson的结合体?这款专注3D目标定位识别的AI深度相机凭什么在国外大火?
  4. s3c2416keil下裸跑
  5. mysql数据库集群配置_使用MySQL-Cluster搭建MySQL数据库集群(示例代码)
  6. 【用户登录】网关,token,全局异常处理
  7. java线性表删除第i个元素_第08话:线性表删除某个元素
  8. 推荐个人常用的六个APP设计辅助工具
  9. 数据库未来发展趋势(上)
  10. localtime使用