图像形成与计算机视觉基础

 

1. 图像形成的基本原理

图像形成是物理世界与传感器(如胶片、CCD/CMOS)交互的过程,核心是光线的传播与记录。

1.1 直接放置胶片模型
  • 物理原理:物体表面反射的光线直接照射到胶片上,但无任何遮挡或聚焦机制。

  • 问题:所有物体点的光线会覆盖整个胶片,导致完全模糊(如图1)。

1.2 针孔相机模型
  • 改进:在物体与胶片间加入针孔屏障,仅允许通过小孔的光线到达胶片(图2)。

  • 关键参数

    • 孔径大小(d):孔径越小,成像越清晰但亮度越低(需权衡信噪比)。

    • 焦距(f):针孔到胶片的距离,决定成像比例。

 

1.3 透镜模型
  • 原理:透镜通过折射集中光线,替代针孔以提高亮度(图3)。

  • 薄透镜公式

    1/f=1/u+1/v​
    • u:物距(物体到透镜的距离)

    • v:像距(透镜到成像平面的距离)

  • 景深(Depth of Field):透镜允许一定范围内的物体清晰成像,与光圈大小成反比。

2. 投影几何与数学模型

2.1 透视投影(Perspective Projection)

 

2.2 仿射投影(Affine Projection)

2.3 消失点与消失线 

    3. 颜色空间与模型

    3.1 RGB颜色空间
    • 定义:通过红、绿、蓝三原色的叠加表示颜色(图6)。

    • 缺点

      • 通道强相关:调整亮度需同时改变所有通道。

      • 非线性感知:人眼对亮度的响应接近对数尺度,而RGB是线性的。

    3.2 HSV/HSL颜色空间
    • 组成

      • H(色相):颜色类型(0°-360°)。

      • S(饱和度):颜色纯度(0%-100%)。

      • V(明度)/L(亮度):颜色明暗程度。

    • 应用:图像编辑软件(如Photoshop)中的颜色选择器。

    3.3 YCbCr颜色空间
    • 分离亮度与色度

      • Y(亮度):Y=0.299R+0.587G+0.114B

      • Cb(蓝色色差):Cb=0.564(B−Y)+128

      • Cr(红色色差):Cr=0.713(R−Y)+128

    • 压缩优势:人眼对亮度更敏感,可对Cb/Cr进行子采样(如4:2:0)。

    3.4 CIELAB颜色空间

     

    4. 数字图像形成技术

    4.1 空间采样(Spatial Sampling)
    • 奈奎斯特采样定理:采样频率需大于信号最高频率的2倍,避免混叠(图7)。

      • 示例:若图像最高空间频率为100 cycles/mm,则采样间隔需小于0.005 mm。

    • 像素阵列

      x=j⋅Δx,y=k⋅Δy(j,k 为整数)
    4.2 量化(Quantization)
    • 位深度与灰度级

      • 8位:256级(JPEG标准)。

      • 12位:4096级(医学影像)。

      • 16位:65536级(专业摄影)。

    • 量化误差

      误差=动态范围2n(n=位深度)
    4.3 分辨率与存储权衡
    • 空间分辨率

      • 人脸识别:64×64像素(约0.1MP)可满足基本需求。

      • 高清显示:1920×1080像素(2MP)。

    • 存储计算

      单张图像大小=宽×高×通道数×位深度单张图像大小=宽×高×通道数×位深度
      • 示例:24位彩色图(3通道×8位),1024×768像素:

        1024×768×3×8=18,874,368 bits=2.36 MB

    5. 空间域与变换域操作

      • 定义

        • 图像处理:输入图像 → 输出图像,目标是抑制失真、增强有用信息(如对比度调整、去噪)。

        • 图像分析:输入图像 → 提取特征/测量(如边缘检测、目标计数)。

        • 计算机视觉:输入图像 → 语义理解(如目标识别、场景重建)。

      • 空间域操作:直接在像素值上进行处理,分为两类:

        • 点操作:单个像素独立变换,公式:

          g(x,y)=T(f(x,y))(如对比度拉伸、反转)g(x,y)=T(f(x,y))(如对比度拉伸、反转)
        • 邻域操作:基于像素周围区域计算,公式:

          g(x,y)=T(f(x,y),f(x+1,y),f(x−1,y),… )(如均值滤波)g(x,y)=T(f(x,y),f(x+1,y),f(x−1,y),…)(如均值滤波)

    6. 点操作详解

    6.1 对比度拉伸(Contrast Stretching)

     

    6.2 阈值处理(Thresholding) 

     

    6.3 强度反转(Intensity Inversion) 

    6.4 对数与幂变换 

     

    7. 直方图处理

    7.1 直方图均衡化(Histogram Equalization)

    7.2 直方图规定(Histogram Matching) 

    8. 算术与逻辑操作

    • 算术操作

      • 加法:多幅图像平均降噪(噪声方差降低 σ2NNσ2​)。

      • 减法:检测变化区域(如运动目标)。

    • 逻辑操作

      • AND/OR:掩膜操作(提取特定区域)。

      • XOR:检测差异(如边缘增强)。

    9. 关键问题解析 

     

     

    10.总结 

    • 图像形成:从物理模型(针孔、透镜)到数学建模(透视/仿射投影)。

    • 颜色科学:不同颜色空间适应不同需求(编辑、压缩、感知)。

    • 数字化技术:采样与量化需平衡质量与效率,避免信息损失。

    • 点操作:直接修改像素值,适合对比度调整和二值化。

    • 直方图处理:通过分布调整优化全局或局部对比度。

    • 算术操作:多用于图像融合与噪声抑制。

    • 核心公式与算法:如Otsu阈值、直方图均衡化需熟练掌握推导与应用。

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

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

    相关文章

    Dockerfile概述及编辑

    文章目录 Docker 镜像原理操作系统组成部分Docker 镜像原理镜像制作 Dockerfile概念及作用Dockerfile 概念Dockerfile 作用 Dockerfile关键字 案例要求实现步骤 Docker 镜像原理 操作系统组成部分 操作系统组成:进程调度子系统、进程通信子系统、内存管理子系统、…

    CES Asia 2025:AR/VR/XR论坛峰会备受瞩目

    CES Asia 2025第七届亚洲消费电子技术贸易展(赛逸展)将在首都北京心盛大举行。作为亚洲极具影响力的消费电子技术展会,此次盛会以“科技重塑生活,创新定义未来”为主题,预计将吸引全球500展商、100,000专业观众参与&am…

    【Java线程基础操作详解】

    Java线程基础操作详解 前言1. 线程创建1.1 继承Thread类1.2 实现Runnable接口1.3 匿名内部类1.4 lambda表达式 2. 线程中断3. 线程等待4. 线程休眠 前言 在Java编程里,线程是实现多任务处理的关键概念。本文会详细讲解Java中线程的创建、中断、等待以及休眠等操作&…

    qt 播放pcm音频

    一、获取PCM音频 ffmpeg -i input.mp3 -acodec pcm_s16le -ar 44100 -ac 2 -f s16le output.pcm -acodec pcm_s16le:指定16位小端PCM编码格式(兼容性最佳)-ar 44100:设置采样率为CD标准44.1kHz(可替换为16000/8000等&a…

    python实现的可爱卸载动画

    在逛掘金时,掘金用户在B站看到的灵感进行的一个卸载窗口的动画效果的实用案例。人类是一种不断在学习的动物,并且是一种模仿能力学习能里比较强的动物。我这里是第三波的学习实践者咯! 相对VUE构建动画效果窗口,我更加喜欢用pytho…

    出现FullGC的排查思路

    一、明确Full GC的触发原因 根据多篇资料,Full GC的触发条件主要包括: 直接调用System.gc():代码或第三方库(如jxl组件)可能显式触发。老年代空间不足:大对象直接进入老年代、Minor GC后存活对象过多导致…

    【Python运维】 Python与日志管理:构建高效的集中式日志收集与分析系统

    《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在当今信息化时代,日志数据成为企业监控系统健康、优化性能和保障安全的重要资源。传统的分散式日志管理方式不仅效率低下,而且难以应对大…

    给没有登录认证的web应用添加登录认证(openresty lua实现)

    这阵子不是deepseek火么?我也折腾了下本地部署,ollama、vllm、llama.cpp都弄了下,webui也用了几个,发现nextjs-ollama-llm-ui小巧方便,挺适合个人使用的。如果放在网上供多人使用的话,得接入登录认证才好&a…

    静态成员不依赖于特定对象的内容

    静态成员不依赖于特定对象的内容这一概念主要涉及到面向对象编程中的静态成员(包括静态变量和静态方法)。为了详细解释这一点,我们需要从以下几个方面来理解: 1. 面向对象编程基础 在面向对象编程中,类是对象的蓝图&…

    SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)

    7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…

    【Java学习】异常

    一、异常的处理过程 异常类的似复刻变量被throw时,会立即中止当前所在的这层方法,即当层方法里throw异常类似复刻变量之后的语句就不会执行了,如果throw异常语句在当层方法中被try{}包裹,则中止就先发生被包裹在了try{}层&#xf…

    政务信息化项目审计全解析:核心重点与区域实践差异化破局

    随着数字化转型加速,政务信息化项目审计已成为提升政府治理效能的关键环节。本文系统梳理审计核心维度,并结合多地差异化实践案例,揭示如何通过精准审计赋能智慧政务建设。 一、审计八大核心维度:穿透信息化项目全生命周期 1. 项…

    HTML第四节

    一.复合选择器 1.后代选择器 注:1.后代选择器会选中后代所有的要选择的标签 2.儿子选择器 3.并集选择器 注:1.注意换行,同时选中多种标签 4.交集选择器 注:1.标签选择器放在最前面,例如放在类选择器的前面 2.两个选择…

    启智平台华为昇腾910B使用MS-Swift微调Janus-Pro-7/1B

    最近想要微调一下DeepSeek出品的Janus多模态大模型 利用启智平台的昇腾910B国产计算卡进行大模型的微调 查看了一下MS-Swift支持了Janus模型的微调,LLamafactory好像暂时还不支持该模型的微调 看到了MS-Swift有单独对昇腾的支持,因此首先要安装swift&…

    香港电讯CE2.0网络全面升级,100G服务支援企业关键应用

    随着人工智能(AI)和新兴科技的应用日益俱增,安全可靠、高速稳定的网络对现今企业而言尤关重要。香港电讯作为香港及大湾区企业信赖的科技解决方案提供者,一直致力为企业客户提供面向未来的网络方案,为不同行业的网络需…

    [QT]开发全解析:从概念到实战

    文章目录 Qt 框架入门与应用开发指南一、Qt 框架概述1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt 的应用场景1.7 Qt 的成功案例 二、Qt 的开发工具概述Qt CreatorVisual StudioEclipse 三、认识 Qt Creator3.1 Qt Creator 概览3.2 使用 Qt C…

    BetaFlight源码解读01

    1.打开main.c init();run(); void systemInit(void) {int ret;clock_gettime(CLOCK_MONOTONIC, &start_time);printf("[system]Init...\n");SystemCoreClock 500 * 1e6; // virtual 500MHzif (pthread_mutex_init(&updateLock, NULL) ! 0) {printf("Cr…

    豆包大模型 MarsCode AI 刷题专栏 001

    001.找单独的数 难度:易 问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…

    Spring Boot 消息队列(以RabbitMQ为例)

    文章目录 RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装 Spring Boot 集成 RabbitMQ1. 创建 Spring Boot 项目2. 配置 RabbitMQ3. 定义消息队列和交换机4. 发送消息5. 接收消息6. 测试消息发送和接收 RabbitMQ 简介与安装 1. RabbitMQ 简介 RabbitMQ 是一个开源的消息…

    C++ Boost库中Chrono时间模块的基本使用

    以下是关于 Boost Chrono 库的常见操作及使用示例: 1. 基本概念 Boost Chrono 提供时间相关的工具,包括: 时钟(Clocks):系统时钟、高精度时钟等。时间点(Time Points):…