如何计算摄像头一个像素对应的实际面积(热成像仪选型1)

news2024/9/25 1:22:43

1. 前言

热成像仪广泛应用于缺陷检测,那么如何选择热成像仪,以满足缺陷检测需求?关键问题是:如何知道热成像仪能不能拍摄清楚我的缺陷呢?,要回答这个问题,就需要计算出热成像仪在最佳拍摄距离下,一个像素所代表的实际被拍摄物体的面积大小

2. 基础名词概念

2.1. FOV(如👇图所示)

HFOV —— 水平视场角
VFOV —— 垂直视场角
DFOV —— 对角视场角
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f469399c3fbd41d283c14b94b9ed56e8.png

2.2. IFOV(IFOV物理意义:一个像素的视角范围

在这里插入图片描述
公式中
N N N:代表图片水平分辨率
M M M:代表图片垂直分辨率

3. 计算一个像素代表的实际被拍摄物体的面积大小

import math
import argparse


def calculate_pixel_area(fov_h, fov_v, distance, resolution_h, resolution_v):
    # 将角度转换为弧度
    fov_h_rad = math.radians(fov_h)
    fov_v_rad = math.radians(fov_v)

    # 计算水平和垂直方向的IFOV
    ifov_h = fov_h / resolution_h
    ifov_v = fov_v / resolution_v

    # 计算每个像素在目标物体上的宽度和高度
    pixel_width = 2 * distance * math.tan(math.radians(ifov_h) / 2) * 1000
    pixel_height = 2 * distance * math.tan(math.radians(ifov_v) / 2) * 1000

    # 计算每个像素的实际面积
    pixel_area = pixel_width * pixel_height

    return pixel_area, pixel_width, pixel_height


def main():
    parser = argparse.ArgumentParser(description='计算热成像仪每个像素对应的实际物体面积')
    parser.add_argument('fov_h', type=float, help='水平视场角 (度)')
    parser.add_argument('fov_v', type=float, help='垂直视场角 (度)')
    parser.add_argument('distance', type=float, help='拍摄距离 (米)')
    parser.add_argument('resolution_h', type=int, help='水平分辨率')
    parser.add_argument('resolution_v', type=int, help='垂直分辨率')

    args = parser.parse_args()

    pixel_area, pixel_width, pixel_height = calculate_pixel_area(args.fov_h, args.fov_v, args.distance,
                                                                 args.resolution_h, args.resolution_v)

    print(f"每个像素对应的面积: {pixel_area:.6f} 平方毫米")
    print(f"每个像素对应的宽度: {pixel_width:.6f} 毫米")
    print(f"每个像素对应的高度: {pixel_height:.6f} 毫米")


if __name__ == '__main__':
    main()

4. python脚本CIL使用方式

假设命名脚本名字为:fov_script.py

4.1. 获取帮助

python ./fov_script.py --help

终端返回如下

usage: fov_script.py [-h] fov_h fov_v distance resolution_h resolution_v

计算热成像仪每个像素对应的实际物体面积

positional arguments:
  fov_h         水平视场角 ()
  fov_v         垂直视场角 ()
  distance      拍摄距离 ()
  resolution_h  水平分辨率
  resolution_v  垂直分辨率

options:
  -h, --help    show this help message and exit

4.2. 计算

假设

  1. 水平 FOV: 30度
  2. 垂直 FOV: 20度
  3. 图像分辨率: 320 x 240 像素
  4. 目标距离: 10米
python fov_script.py 30 20 10 320 240

返回结果

每个像素对应的面积: 237.982454 平方毫米
每个像素对应的宽度: 16.362465 毫米
每个像素对应的高度: 14.544413 毫米

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.5 OJ 网站的使用与作业全解

目录 1 OJ 网站如何使用 1.1 注册账户 1.2 登录账户 1.3 做题步骤 2 本节课的 OJ 作业说明 3 章节综合判断题 4 课时2作业1 5 课时2作业2 6 课时2作业3 1 OJ 网站如何使用 〇J 是英文 Online Judge 的缩写,中文翻译过来是在线判题。当用户将自己编写的代码…

浪潮天启防火墙TQ2000远程配置方法SSL-V偏、L2xx 配置方法

前言 本次设置只针对配置V偏,其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行V偏配置。 其他配置可参考:浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…

ROS1 DWB 与 ROS2 DWA 比较

“DWA算法(dynamic window approach)是移动机器人在运动模型下推算(v,w)对应的轨迹,确定速度采样空间或者说是动态窗口(三种限制);在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,通过一个评价函数对这些轨迹打分,选取最优的轨迹来驱动机器人运动”。ROS…

如何利用桌面工作计划软件制定自己的to do清单?

在我们的日常生活和工作中,经常会遇到各种各样的任务需要完成。如果没有一个明确的计划和安排,我们可能会感到混乱和压力,而桌面工作计划软件可以帮助我们更好地管理和规划我们的时间和任务。今天,我们就来聊聊如何利用这些工具&a…

职升网:二级建造师考试科目分析!

二级建造师考试包含三个主要科目,它们分别是《建设工程施工管理》、《建设工程法规及相关知识》以及《专业工程管理与实务》。以下是这三个科目的详细考试内容: 建设工程施工管理: 此科目作为建造师考试的基础科目,其核心内容是…

走进linux

1、为什么要使用linux 稳定性和可靠性: Linux内核以其稳定性而闻名,能够持续运行数月甚至数年而不需要重新启动。这对于服务器来说至关重要,因为它们需要保持长时间的稳定运行,以提供持续的服务 安全性: Linux系统…

酷克数据亮相第13届PostgreSQL中国技术大会,获数据库杰出贡献奖

7 月 12 日,第 13 届 PostgreSQL 中国技术大会在杭州盛大开幕。本次大会以“聚焦云端创新,汇聚智慧共享”为主题,邀请了国内外 PG 领域众多行业大咖、学术精英及技术专家,共同探讨数据库领域的发展趋势、技术创新和实践经验。酷克…

本地部署,使用ColorizeArtistic_gen.pth大模型进行图像上色

目录 引言 技术背景 模型架构 本地部署 运行结果 实验结果与分析 应用实例 结论 参考文献 引言 图像上色(Image Colorization)是指将黑白图像转换为彩色图像的技术。在数字化时代,这种技术可以用于修复旧照片、增强艺术作品以及在各…

FDL与Kettle功能对比分析之定时任务DDL

开发者在进行数据处理任务时, 一旦源数据库的表结构发生变化,而目标数据库没有及时进行同步,就会导致任务执行失败。DDL同步就是用来解决这一问题,它会自动识别源表结构变化,并及时更新到目标数据库中,保障…

1. 变量、运算符、表达式、输入与输出习题

第一节题单 1. A B import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int a,b;a sc.nextInt();b sc.nextInt();System.out.println(ab);} }608.差 604. 圆的面积 注意不能用float,float的精度不够…

智能硬件——0-1开发流程

文章目录 流程图1. 市场分析具体分析 2. 团队组建2. 团队组建早期团队配置建议配置一:基础型团队 (4人)配置二:扩展型团队 (6人)配置三:全面型团队 (7人) 3. 产品需求分析4. ID设计(Industrial Design, 工业设计)5. 结…

展望未来:在【PyCharm】中结合【机器学习】实现高效的图形化处理

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言一、PyCharm简介与配置1.1 PyCharm基础1.2 图形化库配置 二、机器学习项目中的数据可视化2.1 数据加载与预处理2.2 数据探索性可视化2.3 模型训练与结果可视化 三、PyCharm中的图形化调试四、高级…

如何追踪ping连接中的所有路由器的数量和IP

如何快速判断ping连接经过的路由器个数和IP? 方法一: ping命令会返回一个TTL,TTL(Time To Live)存活时间,一般初始值为64,每经过一个路由器就减一,当TTL为0时丢弃网络包&#xff0…

设置sudo权限

1.使用root账号登录 2.使用visudo打开sudo的配置文件 3.CtrlF翻页到#All root to run any commands anywhere 4.敲击键盘i键切到插入模式 5.在root配置信息一行下方加入一行,以用户test为例: test ALL(ALL) NOPASSWD: ALL

Linux DRM 那些事 - HDMI 接口 DTS 配置

本文基于RockPI 4A单板Debian系统 Linux 4.4 内核介绍DRM框架HDMI接口DTS配置。 在DTS中主要实现:HDMI的使能、VOP绑定、IOMUX引脚配置和HDMI控制器配置。 一、HDMI 配置 文件:arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi #include "rk3…

hutool处理excel时候空指针小记

如图所示&#xff0c;右侧的会识别不到 参考解决方案&#xff1a; /***Description: 填补空缺位置为null/空串*Param: hutool读取的list*return: 无*Author: y*date: 2024/7/13*/public static void formatHutoolExcelArr(List<List<Object>> list) {if (CollUtil…

graphviz subgraph添加边界框

subgraph name 属性必须要以cluster开头。 A Quick Introduction to GraphvizAn awesome tool for software documentation and visualizing graphshttps://www.worthe-it.co.za/blog/2017-09-19-quick-introduction-to-graphviz.html digraph {rankdir"LR"// the n…

教材目录管理功能概述

在智慧校园的教材管理体系中&#xff0c;教材目录管理板块扮演着连接知识与学习者的桥梁角色&#xff0c;对教育资源的有序部署与高效运转起着至关重要的作用。该板块聚焦于基础功能的精炼与优化&#xff0c;力图构建一个界面友好、操作简便的教材信息管理环境。 该板块设计之初…

【Unity学习笔记】第十九 · 物理引擎约束求解解惑(LCP,最优,拉格朗日乘数法,SI,PGS,基于冲量法)

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/140309494 作者&#xff1a;CSDN|Ringleader| 在学习物理引擎过程中&#xff0c;有几大问题一直困扰着我&#xff1a; 约束求解到底是LCP还是带约束最优问题&#xff1f;约束求解过程中拉格朗日乘数法…

.NET MAUI开源架构_1.学习资源分享

最近需要开发Android的App&#xff0c;想预研下使用.NET开源架构.NET MAUI来开发App程序。因此网上搜索了下相关资料&#xff0c;现在把我查询的结果记录下&#xff0c;方便后面学习。 1.官方文档 1.1MAUI官方学习网站 .NET Multi-Platform App UI 文档 - .NET MAUI | Micro…