[笔记] CCD相机测距相关的一些基础知识
1.35mm胶片相机等效焦距
https://zhuanlan.zhihu.com/p/419616729
拿到摄像头拍摄的数码照片后,我们会看到这样的信息:

这里显示出了两个焦距:一个是实际焦距:5mm,一个是等效焦距:25mm。
实际焦距很容易理解——就是镜头到CCD感光元件所在的焦平面的距离。但是这个35mm等效焦距是什么意思?——它和CCD感光元件的幅面有关。对于普通相机和胶卷,似乎有一个约定俗称的幅面标准——35mm相机或者摄像机的成像尺寸是:36*24mm。
因为CCD感光原件一般更小,为了拍出35mm相机的效果,它的焦平面就只能前移,更靠近摄像头。然后成像之后,拍出的效果近似与35mm相机的拍摄效果相同——它其实是为了适应老一代摄影师的习惯。

计算等效焦距时,不变量是角度——实际焦距与画幅的比例:
比如对于1/2.3英寸的CCD感光原件,那个6.22 x 近似等于 = 36/5.57 = 6.46.
2.清晰成像 - 超焦距
这是个景深的概念,这个问题似乎有个悖论,我们认为镜头是个凸透镜,而凸透镜成像,焦平面不就是对应无穷远平行光射来的聚焦位置吗?事实上,最终成像时,相机的CCD镜头始终不会放置在焦平面的位置——因为如果这样做你无法解释背景虚化。


上面的表格,是一份不同光圈和摄像头焦距作用下,超焦距对照表。所谓超焦距,就是针对特定焦距的镜头,和特定的光圈,达到成像距离延展至无穷远的成像微调速查表,比如:
如果选用f/4光圈,如果当前镜头焦距是20mm, 只要把焦平面对准到3.57米的物体,清晰成像,就可以获得从1.79米到无穷远的超焦距效果。
2.1定焦相机也需要调焦
- 有一个问题,定焦相机也需要调焦?
是的,定焦相机也需要调焦。虽然定焦镜头有固定的焦距,但是拍摄距离不同的物体时仍然需要调整对焦以确保物体清晰。对焦的目的是使物体的影像聚焦在传感器上,这样才能获得清晰的图像。
- 这是个机械装置还是。。。?
对焦通常涉及到机械装置。在相机中,对焦是通过调整镜头与图像传感器之间的距离来实现的。这通常由相机的自动对焦系统或手动对焦环控制。自动对焦系统使用传感器和电动马达来实现对焦,而手动对焦则是通过摄影师旋转镜头的对焦环来调整焦距,直到物体清晰为止。因此,无论是自动对焦还是手动对焦,对焦机制都涉及到机械装置的调整。
- 即使是那种焦距非常短比如3.6mm的摄像头,也需要调焦,对吧?
是的,即使是焦距非常短的摄像头,比如3.6mm的摄像头,也需要调焦。尽管焦距很短,调焦的原理和过程仍然是类似的。摄像头需要确保被拍摄物体的影像能够清晰地投射在传感器上,这样才能产生清晰的图像或视频。因此,无论是短焦镜头还是长焦镜头,调焦是确保图像质量的重要步骤之一。
- 这种调焦其实是个微调,对啊?因为总的焦距已经确定。
是的,你说得对。对焦过程中的调整通常是微调,因为镜头的总焦距是固定的,但在不同距离的拍摄中,需要微调镜头与传感器之间的距离,以确保被拍摄物体清晰投射在传感器上。这种微调可以是自动的(由相机的自动对焦系统完成)或者是手动的(由摄影师通过对焦环完成),但其目的都是为了获得最佳的图像质量。
附录A 目前工业相机参数比对
<待续...>
案例一 某H相机
参数:
- 200万 1/2.7" CMOS ICR日夜型筒型网络摄像机。
- 1920×1080 @ 25 fps 实时(最高)
- 高效红外灯,使用寿命长,照射距离最远可达30米(I3)/50米(I5)/80米(I8)
- 功耗:I3:5W MAX; I5:7W MAX; I8:10W MAX
- ICR红外滤片式自动切换,smart IR防止过曝
- PoE供电功能(选配)
- IP67级防尘防水
- 接口:M12
- 4 mm,水平视场角: 90.3°;( 6mm(55.2°);8mm(40.3°);12mm(26.3°)可选)
- 1/2.7" Progressive Scan CMOS
- 1/3秒至1/100,000秒
- 动态范围120db
- ONVIF(PROFILE S,PROFILE G), CGI,ISAPI
相关文章:
[笔记] CCD相机测距相关的一些基础知识
1.35mm胶片相机等效焦距 https://zhuanlan.zhihu.com/p/419616729 拿到摄像头拍摄的数码照片后,我们会看到这样的信息: 这里显示出了两个焦距:一个是实际焦距:5mm,一个是等效焦距:25mm。 实际焦距很容易…...
【ai】tx2-nx :查看cuda和cudnn
JetSon-nano板卡_从sd卡烧录到tensorRT部署_一条龙 查看 cuda 版本 nvidia@tx2-nx:~$ nvcc -v nvcc fatal : No input files specified; use option --help for more information nvidia@tx2-nx:~$ nvcc -V nvcc: NVIDIA Cuda compiler driver Copyright © 2005-2021 NV…...
webpack 中 require.context() 的用法
一、什么是 require.context It allows you to pass in a directory to search, a flag indicating whether subdirectories should be searched too, and a regular expression to match files against. – webpack 官方说明 一个 webpack 的 api ,通过该函数可以获…...
漫画 | “本世纪最重要的一篇硕士论文诞生了!”
后记:本来想写信息论的,开了一个头以后,不知道怎么就拐到布尔代数那里去了,还好,最终还是和香农扯上了关系。 看过《编码》的同学对中间有一段可能有点熟悉,这一段是改编自《编码》第十章中的内容ÿ…...
Gone框架介绍29 - 在Gone中使用gRPC通信
gone是可以高效开发Web服务的Golang依赖注入框架 github地址:https://github.com/gone-io/gone 文档地址:https://goner.fun/zh/ 文章目录 使用gRPC通信编写proto文件,生成golang代码编写服务端代码注册客户端编写配置文件测试总结 使用gRPC通…...
开源一套Trados Sdlxliff 对比工具
开源一套Trados Sdlxliff 对比工具 在Trados翻译过程中经常对需要进行版本控制和对比,例如对比不同设置下生成的sdlxliff文件,对比不同的机器翻译结果以及对比机器翻译和人工翻译,对比翻译和审校等等。 当然SDL官方也提供了对比工具 https:…...
百度网盘 url 正则表达式
匹配 https://pan.baidu.com/s/1NmVIJiI2Ot8MkI-vxxNPTg?pwdxxxx https://pan.baidu.com/s/[a-zA-Z0-9\-]*(\?pwd[a-zA-Z0-9]{4})?该正则表达式匹配以 https:// 开头,后面跟着 pan.baidu.com/s/ 或 yun.baidu.com/s/,最后跟着一串由大小写字母、数字…...
【stable diffusion】ComfyUI扩展安装以及”127.0.0.1拒绝了我们的连接请求“解决记录
目录 扩展安装”127.0.0.1拒绝了我们的连接请求“解决记录操作1操作2操作3操作4总结扩展安装 虽然大家都推荐将扩展包直接放到extension文件夹的方式,但我还是推荐直接在sd webui的扩展处下载,酱紫比较好维护一点,我个人感觉。 按照上图顺序点击会出现”URLError: <url…...
OceanBase 列存中多列过滤性能解析
今天有同事问我,列存大宽表场景下,如果在多个列上有等值过滤条件,OceanBase 的性能是不是无法满足要求? Hi 晓楚,帮评估个OTS替换场景 大概1亿大宽表,查询姿势就是任意字段的组合,进行等值查询g…...
嵌入式实验---实验二 中断功能实验
一、实验目的 1、掌握STM32F103中断程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、在上一章的实验基础上,添加一个按键和一个LED; 2、使用中断的方式实现以下两个功能: (1)KEY1按键…...
在 Visual Studio 2022 (Visual C++ 17) 中使用 Visual Leak Detector
在 Visual C 2022 中使用 Visual Leak Detector 1 问题描述1.1 内存泄漏的困扰和解决之道1.2 内存泄漏检测工具的选择1.3 VLD的现状 2 安装和设置VLD的环境变量2.1 安装VLD文件2.2 VLD安装后的目录和文件说明2.2.1 include子目录说明2.2.2 lib子目录说明2.2.2.1 目录整理 2.2.3…...
基于IDEA的Maven(properties属性配置)
(property :财产)properties:它的复数。 同样也是基于上篇博客进行学习。(具体的全部项目代码和结构可以去查看上篇...) <properties><!--当前jdk版本 , 这一步可以完全省略--><maven.com…...
边缘计算(Edge Computing)_关键概念/优势/应用场景
边缘计算(Edge Computing)是一种计算范式,它将数据处理和分析从传统的集中式数据中心和云计算平台移至更接近数据生成源头的位置(即“边缘”),例如物联网设备、传感器、路由器或其他边缘设备。边缘计算旨在…...
idea关联gitlab仓库,访问报错
1、登录方式 idea中集成了gitlab的最新版的插件后,登录强制使用token登录,不能使用账号密码登录。 2、版本问题报错 安装了插件后,如果本地部署的gitlab版本低,则直接导致gitlab生成的token也无法登录,操作会报错&am…...
【Hive】new HiveConf()时加载的配置浅析
简单看下源码: org.apache.hadoop.hive.conf.HiveConf HiveConf中有静态代码块,内容就是调用findConfigFile方法,尝试读取hive-default.xml,hive-site.xml,hivemetastore-site.xml,hiveserver2-site.xml。…...
Glide 缓存机制研究及同命名图片的替换回显
背景: 相册-图片后处理场景,需要先展示一张原图,同时后台对图片进行算法优化,完成优化之后无缝替换原图展示,同时保证后续都展示算法优化后的图片 图片加载采用 Glide 库实现 画重点: 相册场景ÿ…...
一键简易桌签(带背景)-Word插件-大珩助手
问题整理: 如何Word中设计简易桌签?如何设置带背景图的桌签? Word大珩助手是一款功能丰富的Office Word插件,旨在提高用户在处理文档时的效率。它具有多种实用的功能,能够帮助用户轻松修改、优化和管理Word文件&…...
如何解决centos停止维护后更换Debian11平替?
再有9天时间centos7.x就将停止维护,最近很多人已经再更换系统了!有推荐alibabacloud,opencloud,debian,ubuntu,centos-stream,tencentos,anolis,rockey,almal,oracle,arch,Fedora,opensuse 很多人不知道选什么,这里就主要介绍一下 如果你是使用宝塔面板 并且想要无缝衔…...
服务器雪崩的应对策略之----熔断机制
熔断机制(Circuit Breaker)是一种保护系统稳定性的重要手段。它的主要目的是防止系统在依赖的服务出现问题时,继续发送请求,从而保护系统免受进一步的影响。熔断机制通过监控请求的成功和失败率,在检测到故障率超过预设…...
RestClient操作索引库和文档
导入依赖: <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency>导入依赖成功之后就可以开始我们的测…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
