通过交互式网页学习相机成像原理

入门摄影这门艺术,你是否有以下这些问题?

焦距、光圈、CMOS是什么?为什么光圈越大,背景虚化效果越好?什么是过曝?...

今天我将分享一个简单的、可交互的相机成像模型,可供大家以可视化的方式深入学习和理解这些术语。

1. Ray Optics Simulation 光学模拟平台

使用者可以交互式的方式,利用该平台提供的光源、镜子、透光物、遮光物等工具创建和模拟 2D 几何光学场景,并与其互动。此外,该平台还提供画廊,使用者可将自己创建的光学场景上传,供其他用户使用与学习。

以下是几个比较有意思的画廊作品,分别构建了日食、变焦镜头、菲涅尔透镜的光学模型。有兴趣的小伙伴也可以自己做一些有意思的模型。

2. 相机成像原理模型的使用

在这里,我通过简单修改该画廊 Camera obscura - Ray Optics Simulation 作品,实现相机成像原理模型的创建。大家可通过如下方式使用:

2.1 创建一个 json文件

这里我创建一个名为 The principle of camera imaging.json 的文件,内容如下:

json 复制代码
{
  "version": 5,
  "name": "The principle of camera imaging",
  "objs": [
    {
      "type": "Blocker",
      "p1": {
        "x": 1060,
        "y": 680
      },
      "p2": {
        "x": 760,
        "y": 680
      }
    },
    {
      "type": "Blocker",
      "p1": {
        "x": 1060,
        "y": 400
      },
      "p2": {
        "x": 760,
        "y": 400
      }
    },
    {
      "type": "Ruler",
      "p1": {
        "x": 1063.0130526315788,
        "y": 698.7886315789475
      },
      "p2": {
        "x": -141.88572433595814,
        "y": 694.8105495423805
      }
    },
    {
      "type": "Aperture",
      "p1": {
        "x": 760,
        "y": 400
      },
      "p2": {
        "x": 760,
        "y": 680
      },
      "p3": {
        "x": 760,
        "y": 504.62570743711734
      },
      "p4": {
        "x": 760,
        "y": 575.3742925628826
      }
    },
    {
      "type": "TextLabel",
      "x": 199.55899596667035,
      "y": 367.9691032858637,
      "text": "Objects outside",
      "alignment": "right"
    },
    {
      "type": "TextLabel",
      "x": 913.5043956043952,
      "y": 392.9062845651083,
      "text": "Camera",
      "alignment": "center"
    },
    {
      "type": "CropBox",
      "p1": {
        "x": -139.83866396761127,
        "y": 326.32154443423786
      },
      "p4": {
        "x": 1133.424493927126,
        "y": 779.921544434238
      }
    },
    {
      "type": "CropBox",
      "p1": {
        "x": 704.0034412955467,
        "y": 362.3215444342379
      },
      "p4": {
        "x": 1086.74028340081,
        "y": 745.058386434238
      }
    },
    {
      "type": "IdealLens",
      "p1": {
        "x": 786.0224861903579,
        "y": 405.29349691080154
      },
      "p2": {
        "x": 786.3857418161693,
        "y": 675.2470299262627
      },
      "focalLength": 155
    },
    {
      "type": "PointSource",
      "x": 432.30290724298936,
      "y": 470.70739164764365,
      "brightness": 0.43,
      "wavelength": 434
    },
    {
      "type": "PointSource",
      "x": -191.5518295991161,
      "y": 572.4623390160647,
      "brightness": 0.68,
      "wavelength": 669
    },
    {
      "type": "Detector",
      "p1": {
        "x": 1059.5017824181016,
        "y": 397.5102132692092
      },
      "p2": {
        "x": 1059.5017824181016,
        "y": 679.7590553744725
      },
      "irradMap": true
    },
    {
      "type": "TextLabel",
      "x": 1066.2885915124061,
      "y": 423.45358025984,
      "text": "CMOS"
    }
  ],
  "width": 1500,
  "height": 800,
  "rayModeDensity": 1.224337645235499,
  "origin": {
    "x": 286.1284655189088,
    "y": -55.57492358816593
  },
  "scale": 0.8255126868265552,
  "simulateColors": true
}

2.2 打开平台导入并使用

打开网站 https://phydemo.app/ray-optics/simulator/ , 左上角文件 -- 打开 -- 选择刚刚创建的json文件,就可以使用啦!

3 交互式相机模拟器网站

交互式相机模拟器,允许用户调整光圈、快门速度、ISO 等设置,模拟不同场景下的拍摄效果。这个网站直观地展示了不同设置如何影响曝光和照片质量,非常适合理解相机的基本原理。

https://www.camerasim.com/

摄影曝光三要素,光圈、快门、ISO 如何平衡

相关推荐
西岸行者8 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意8 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码9 天前
嵌入式学习路线
学习
毛小茛9 天前
计算机系统概论——校验码
学习
babe小鑫9 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms9 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下9 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。9 天前
2026.2.25监控学习
学习
im_AMBER9 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J9 天前
从“Hello World“ 开始 C++
c语言·c++·学习