学习光照的一些参数

light intensity  光强度(发光强度的单位。代号cd。是一光源在给定方向上的发光强度)

glossiness 光泽度 (用数字表示的物体表面接近镜面的程度,它主要取决于光源照明和观察的角度 ,一般指加工品的表面色泽,磨损,损坏会影响光泽度)

specular 高光  (高光是指图像中色调较亮的像素,高光色调最大的色阶值是255)

ambient 环境光 (整个环境的默认灯光)

direction light 方向光(平行光,定向灯)  光源拥有不变方向的平行光线且不会随着距离衰减(一般用于太阳光)

point light 点光(点灯) 像所有方向发射光,非线性衰减

spot light 聚光灯(射灯)   一种锥形光源,相当于点光给了一个罩子,隔得越远非线性衰减

area light 区域光(一个区域内的环境光)

漫反射强度=材质的漫反射系数×光源强度×(法线方向向量·入射光方向向量)
例如: 0.5(反射一半)×1(最强,白色)×cos0(入射光垂直于法线,夹角0)=0.5(半减,灰色)
*所有的“强度”“系数”都是和“颜色”是等价的,因为将RGB三个分量计算过后,合并的结果就是颜色而不再是强度了。
即“ 漫反射颜色=材质的漫反射颜色×光源颜色×(法线方向向量·入射光方向向量)”(下同)
*注意,“×”是数乘,而“·”则是点乘,也就是说最后两向量的点积表示的就是它们夹角的cos值。(下同)
*注意,所有向量都是单位向量,并且入射光向量由反射点指向平面外。(下同)

*图示,L是入射光,N是法线,R是反射光,eye是视点
 
2、镜面反射
理想镜面是不存在的,对一般的光滑表面而言,反射光会集中在一个范围内,它的结果与视点有关,即:
镜面反射强度=材质镜面反射系数×光源强度×(法线方向向量·入射光与视点夹角一半的方向向量)^光泽度
例如:0.5(反射一半)×1(最强,白色)×cos0(视点位于反射光方向上,夹角0)^1(加权1)=0.5(半减,灰色)
*“^光泽度”是“光泽度次方”,光泽度越大,高光的亮斑越小
*标准算法应该是指向视点的光线和反射线的单位向量的点乘(即上图中的α角),但为了节省计算,我们按blin模型用此代替。
*那个半向量=视点方向向量+入射光方向向量,如果按下图的箭头,那么就是视点方向向量-入射光方向向量

*图示,H为半向量,它与eye的夹角等于它与L的夹角,这个角只是近似(你可以很容易的发现,其实它少了一半),但对于实时渲染而言,这已经足够了。

3、环境反射
环境光是一种经过多次反射平衡的光,它的强度是均匀的,并且分布是一样的,即:
环境光没有位置或方向上的特征,只有一个颜色亮度值,而且不会衰减,所以在所有方向和所有物体表面上投射的环境光的数量是恒定不变的。
 
因此,在局部光照明模型中(全局光照明包含对象间的作用,需要光线追踪等算法。为了效率,实时渲染中可以忽略),我们用一个常量进行计算:
环境反射强度= 材质环境反射系数×环境光强度
例如: 0.5(反射一半)×1(最强,白色)=0.5(半减,灰色)
 
原文链接:http://bbs.9ria.com/blog-201483-12943.html

转载于:https://www.cnblogs.com/Star9527/p/6719073.html

### 关于低光照图像增强的机器学习方法 #### 使用深度学习模型进行弱光环境下的图像质量提升 近年来,基于卷积神经网络 (CNN) 的端到端训练框架被广泛应用于解决低光照条件下的视觉挑战。这些模型能够自动提取特征并调整参数来优化输出效果[^1]。 一种常见的做法是采用生成对抗网络(GANs),通过构建两个相互竞争的学习模块——生成器和判别器,在迭代过程中不断改进合成图片的真实性与自然度。对于特定应用场景如夜间监控视频处理,则可以引入额外约束机制以确保结果更加贴近实际需求。 此外,还有研究者提出了融合多尺度信息的方法,即利用不同层次的感受野特性捕捉全局结构以及局部细节变化;或是借助注意力机制突出显示重要区域内的像素值分布情况,从而达到更好的恢复性能。 ```python import torch from torchvision import models, transforms from PIL import Image class LowLightEnhancer(torch.nn.Module): def __init__(self): super(LowLightEnhancer, self).__init__() # Define layers here def forward(self, x): pass # Implement forward propagation logic def preprocess_image(image_path): transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.ToTensor(), ]) img = Image.open(image_path).convert('RGB') return transform(img) model = LowLightEnhancer() input_img_tensor = preprocess_image("path_to_low_light_image.jpg") output_enhanced_image = model(input_img_tensor.unsqueeze(0)) ``` 此代码片段展示了如何定义一个简单的PyTorch类`LowLightEnhancer`用于实现自定义的低光照图像增强功能,并提供了预处理输入数据的基本流程作为参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值