光度立体法检测原理讲解

光度立体法检测

图像辐照度

决定场景表面片辐射的因素有两个:

1.在场景表面片的照明

投在某一特定表面片上的照明量取决于该表面片在场景中相对于光源的分布位置

2.表面片反射的入射照明部分

在某一特定方向上被表面片反射的入射照明部分取决于表面材料的光学特性

反射类型:

1.Lambertian反射(也叫理想散射)

Lambertian 表面是指在一个固定的照明分布下从所有的视场方向上观测都具有相同亮度的表面,Lambertian表面不吸收任何入射光.Lambertian反射也叫散光反射,不管照明分布如何,Lambertian 表面在所有的表面方向上接收并发散所有的入射照明,结果是每一个方向上都能看到相同数量的能量.

Lambertian 表面的 BRDF 是一个常数:
在这里插入图片描述
假定照明不是一个点光源,而是在所有方向都是均匀的,其发光总强度为I.那么亮度可由下式给出:
在这里插入图片描述
现在,Lambertian 表面的被感觉的亮度在所有方向上都相,这是因为不管表面片朝向何方,它都能接收到同样数量的照明。
表面反射特性:
在这里插入图片描述

2.理想镜面反射

在这里插入图片描述

该方程表明入射光线被表面片反射出去,如同理想的镜子一样。
镜面在某一方向上反射所有的入射光,反射方向角相对于镜面法线来说与入射角相等,但在法线的另一侧,镜面的BRDF为:
在这里插入图片描述

理想镜面反射特性:

在这里插入图片描述

3.Lambertian反射和镜面反射组合

在这里插入图片描述
式中常量控制着两个反射函数的混合度
镜面反射和散光反射的相对比例随着物体表面材料的不同而变化光滑的物体,或者说闪亮的物体,其镜面反射的成分要高于无光泽的物体。

表面方向

想象球上的一个点,并假定一个平面在该点与球相切,该平面的法线也是球上对应点的表面法线。

表面朝向: 表面法线和镜头方向间夹角

在这里插入图片描述
该式子简单地表明对应于深度z 的单位变化,在X和Y的相应位移量分别为 p和q.单位表面法线可以通过表面法线除以它的长度得到:
在这里插入图片描述

反射图(Reflectance Map)

将场景照明、表面反射和(在以观察者为中心的坐标系中)表面方向表示的组合称为反射图。它确定了在给定照明分布和表面材料的情况下,一个表面片在特定方向上的亮度.
假设具有 Lambertian 反射特性表面片由一个点光源照明。已计算出表面片的辐射为:
在这里插入图片描述
式中,0.是表面片的法线与光源方向矢量间的夹角。
在这里插入图片描述

两个矢量间夹角的余弦是两矢量的点积除以每个矢量的长度,所以表面法线和光源方向之间的夹角的余弦是:
在这里插入图片描述
场景照明 (光源)、表面反射特性和表面方向(梯度表示)共同确定表面一点的亮度,三者的组合形成反射图.
假设图象平面上的辐照度 (亮度) 等于物体表面对应点的辐射度,则已知反射图和以上三个因素,就可以确定图象上一点的亮度。
图像辐照度的精确值取决于各种因素,比如光源强度、光学系统的集光性能以及很多其它不影响反射的因素这些因素使得图像辐照度正比于若干常数。因此,反射图可以归一化,以便统一描述。
这样对于一个远距离点光源照射的朗伯面,有:
在这里插入图片描述
景物亮度与表面朝向关系可由反射图获得。

点光源照射的Lambertian表面典型反射图

在这里插入图片描述

亮度约束方程

反射图表示了表面亮度与表面朝向的关系。
图像上一个点的辐照度正比于景物中目标表面对应点亮度。
如果归“化将比例系数定为单位值,则可将景物点亮度记为:
可以得到图像上点照度为:
在这里插入图片描述
在一个象素点处的图像强度是对应于场景点的表面方向的函数,该强度值可在反射图中获取。这样,对于一个固定照明和成象条件,以及对于一个已知反射特性的表面,表面方向的变化可转换成图像强度的相应变化。反过来,由图像强度的变化可以恢复表面形状的问题,即所谓从明暗恢复形状的问题。“
图像辐照方程包含有两个未知数,表面方向p和g。
基本思想: 通过不同的光源产生不同的图像辐射方程来增加方程数目,以求解表面方向p和q。假定获取两幅采用不同照明图像,如图所示。这样,对于图像中的每一点,将产生两个图像辐照方程:
在这里插入图片描述

如果这些方程是线性的,而且是线性无关,则p和9 具有唯一解。如果方程是非线性的,则方程无解或无唯一解。
在两个不同光源照射下的两个反射图迭加示意图:
在这里插入图片描述

例如,两个图像辐射方程为:
在这里插入图片描述
可以验证,当R和R,分别取不同值时,上述方程将会有一个解、两个解、或无解,当(p1:q1)=(p2;q2),将有无穷解。
主要代码部分:

ImageFiles := []
ImageFiles[0] :='F:/光度立体/0.jpg'
ImageFiles[1] :='F:/光度立体/90.jpg'
ImageFiles[2] := 'F:/光度立体/180.jpg'
ImageFiles[3] := 'F:/光度立体/360.jpg'


* zoom_image_size (Image, ImageZoom, 512, 512, 'constant')
read_image (Image, ImageFiles)
rgb1_to_gray (Image, Image)
    * Image Acquisition 01: Do something

* Tilts := [0,90,180,270]
* Slants := [45,45,45,45]
Tilts := [-80,10,95,-170]
Slants := [45,45,45,45]
* ResultType := ['gradient','albedo']
ResultType := ['gradient']
photometric_stereo (Image, HeightField, Gradient, Albedo, Slants, Tilts, 'gradient', 'poisson', [], [])
derivate_vector_field (Gradient, Result, 5, 'mean_curvature')
* threshold (Result, Regions, 0.001165, 0.1)
threshold (Result, Regions, 0, 0.1)
* gen_circle (ROI_0, 1946.17, 2498.06, 766.33)
* clip_region (Regions, RegionClipped, 1165, 1679, 2744, 3222)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端实现html转pdf

优秀文章: 前端实现 HTML 转 PDF 并导出 - 掘金 (juejin.cn)https://juejin.cn/post/7012049739482923039 安装 npm install html2canvas jspdf --save main.js导入: import htmlToPdf from ./utils/htmlToPdf Vue.use(htmlToPdf) html2Canvas.js文…

html+css实现的登录界面

一、界面效果 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录</title><style>body {background-color: #f1f1f1;}.login-box {width: 400px;margin: 50px auto;padding: 2…

【计算机视觉·OpenCV】使用Haar+Cascade实现人脸检测

前言 人脸检测的目标是找出图像中所有的人脸对应的位置&#xff0c;算法的输出是人脸的外接矩形在图像中的坐标。使用 haar 特征和 cascade 检测器进行人脸检测是一种传统的方式&#xff0c;下面将给出利用 OpenCV 中的 haarcascade 进行人脸检测的代码。 程序流程 代码 impo…

ESP32设备驱动-MLX90615红外测温仪驱动

MLX90615红外测温仪驱动 文章目录 MLX90615红外测温仪驱动1、MLX90615介绍2、硬件准备3、软件准备4、驱动实现1、MLX90615介绍 MLX90615 是一款用于非接触式温度测量的微型红外温度计。 IR 敏感热电堆探测器芯片和信号调节 ASIC 都集成在同一个微型 TO-46 罐中。 红外测温仪出…

快速尝鲜Oracle 23c免费开发者版,惊喜多多

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

分布式一致性协议

1 两阶段提交协议(2PC) 1.1 两阶段提交协议 两阶段提交协议&#xff0c;简称 2PC(2 Prepare Commit)&#xff0c;是比较常用的解决分布式事务问题的方式&#xff0c;要么所 有参与进程都提交事务&#xff0c;要么都取消事务&#xff0c;即实现 ACID 中的原子性(A)的常用手段。…

ctfshow web入门 爆破 21-28

web21 刚进去就要求我们登录&#xff0c;这里题目给了我们一个字典&#xff0c;就是这个字典为什么他那么多数字中 就一个字母的密码还不明显吗。 这里我们使用burp拦包&#xff0c;这里没有发现登录的账号密码&#xff0c;但是有一串可疑的字符串&#xff0c;尝试base64解密 这…

Java设计模式 07-装饰者模式

装饰者模式 套娃模式&#xff0c;直接new放构造器里面套 把抽象类聚合到它的子类里 该子类(装饰者)构造抽象类的实现(被装饰者) 一、星巴克咖啡订单项目&#xff08;咖啡馆&#xff09; 1)咖啡种类/单品咖啡&#xff1a;Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式…

【Spring】2—IOC容器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

教你如何搭建物业-后勤管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建物业-后勤管理。 1.2、应用场景 该应用包含疫情上报、绿化、安保等管理功能。 2、设置方法 2.1、表单搭建 1&#xff09;新建表单【返区登记】&#xff0c;字段设置如下&#xff1a; 名称类型名称类型姓名单行文本…

静态路由的原理和配置(理论详细实验全面)

第五章&#xff1a;静态路由 目录 第五章&#xff1a;静态路由 5.1路由器的工作原理 5.1.1路由器根据路由表转发数据 5.1.2 路由信息获取的方式 5.2路由选路原则 5.2.1最长匹配原则 5.2.2路由优先级 5.2.3路由度量值 5.3静态路由 5.3.1静态路由实验 5.3.2缺省路由实…

初学对象存储OSS---学习笔记

文章目录前言一、OSS是什么&#xff1f;下面以一个小故事介绍OSS的作用&#xff1a;二、怎么使用OSS1.进入 -----> [阿里云官网](https://www.aliyun.com/)2.点击进入OSS控制台3.获取accessKeyId 和 accessKeySecret4.拿到了accessKeyId 和 accessKeySecret &#xff0c;就可…

CTP_将C++封装为Python可调用接口

目录 写在前面&#xff1a; 前置准备&#xff1a; step 1 与上期所原始代码对比分析源码 td源码 1 配置属性-》常规-》配置类型 要为 “动态库(.dll)” 2 VC目录 -》包含目录 3 VC目录 -》 库目录 4 链接器-》常规-》附加库目录 5 链接器-》输入-》附加依赖项 vnctp.h 的功…

CTF杂项提纲

CTF的杂项是涉及编码&#xff0c;图片隐写&#xff0c;音频隐写&#xff0c;压缩包分析的方向&#xff0c;本文对MISC的知识点做了一个简单列举 常见编码 ASCII 0-9,48-57 A-Z 65-90 a-z 97-122 URL url编码又叫百分号编码&#xff0c;是统一资源定位的编码方式 base16/…

leetcode每日一题:数组篇(1/2)

&#x1f61a;一个不甘平凡的普通人&#xff0c;日更算法学习和打卡&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;每日算法学习 &#x1f4ac;个人…

cmake 常用方法自我总结

目录 1. 编译一个库依赖另一个库 2. 把某一个CMakeLists.txt中变量设为整个工程中任意CMakeLists.txt都可以访问 3. 枚举目录下所有匹配文件 4. 拷贝文件 5. 解决方案下分Header Files&#xff0c;Source Files目录 6. 依赖头文件&#xff08;附加依赖项&#xff09; 7.…

通过阿里云函数计算解决ChatGPT API的调用问题

ChatGPT系列文章 与其被ChatGPT取代&#xff0c;不如征服ChatGPT&#xff0c;做它的主人&#xff01; 文章目录ChatGPT系列文章前言命令行部署准备工作两行命令实现部署应用中心部署使用代理访问API总结前言 自2022年11月30日 OpenAI 发布 ChatGPT 以来&#xff0c;虽然时有唱…

算法训练第四十九天 | 121.买卖股票的最佳时机、122.买卖股票的最佳时机II

动态规划part10121.买卖股票的最佳时机题目描述思路暴力贪心动态规划122.买卖股票的最佳时机II题目描述思路121.买卖股票的最佳时机 题目链接&#xff1a;121.买卖股票的最佳时机 参考&#xff1a;https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9…

entos7系统部署网站项目教程【超详细教程】

CentOS 7 系统部署项目教程 本文将介绍如何在 CentOS 7 系统上部署项目。在本教程中&#xff0c;我们将使用 Apache、PHP 和 MySQL 作为我们的主要开发工具。对于初学者来说&#xff0c;这是一个入门级的教程&#xff0c;旨在提供一些基本的概念和工具&#xff0c;以帮助您更好…

实践分享:如何在自己的App 中引入AI 画图

最近AIGC 简直是杀疯了&#xff0c;领导动不动就让我们在APP 里引入大语言模型&#xff0c;引入AI画图……说搞就搞&#xff01;本期基于最近在app 里引入AI画图小程序的操作&#xff0c;给大家做一波实践分享。 Scribble Diffusion 是一个简单的在线服务&#xff0c;它使用 A…
最新文章