tic
%%%%%%%%每张图中光源的方向
light1=[0 -10 0];
light2=[-10 -10 0];
light3=[10 -10 0];
light4=[0 -10 10];
light5=[-10 -10 10];
light6=[10 -10 10];
%测试结束
%对光源方向进行归一化
light1 = light1 / norm(light1);
light2 = light2 / norm(light2);
light3 = light3 / norm(light3);
light4 = light4 / norm(light4);
light5 = light5 / norm(light5);
light6 = light6 / norm(light6);
%%将六张二维图读进来,注意图像必须是灰度图
img1 = rgb2gray( imread('vase1.png'));
img2 = rgb2gray( imread('vase2.png'));
img3 = rgb2gray( imread('vase3.png'));
img4 = rgb2gray( imread('vase4.png'));
img5 = rgb2gray( imread('vase5.png'));
img6 = rgb2gray( imread('vase6.png'));
%设置光源矩阵
S= [light1; light2 ;light3; light4; light5; light6];
%初始化b,b存储每一个像素点分别沿x,y,z轴的反射率
b=ones(800,800,3);
b=double(b);
%初始化p,q,p,q分别存储沿x轴,y轴的单位反射率,也就是沿x,y的梯度
p=ones(800,800);
p=double(p);
q=p;
%初始化Z,Z存储图像中每一个像素点的高度值
Z=ones(800,800);
Z=double(Z);
for i=1:800
for j=1:800
E=[img1(i,j) img2(i,j) img3(i,j) img4(i,j) img5(i,j) img6(i,j)];
E=double(E');
tb= (inv(S'*S))*S'*E; %tb是3*1矩阵,求的是目标本身的反射率
nbm = norm(tb);%求tb的范数
if( nbm == 0)
b(i,j,:) = 0;
else
b(i,j,:) = tb / nbm; %b存储归一化后的反射率
end
%tM是个中间变量,存储一个点沿x,y,z轴的反射率
tM = [b(i,j,1) b(i,j,2) b(i,j,3)];
nbm = norm(tM);
if( nbm == 0)
tM = [0 0 0];
else
tM = tM / nbm;
end
p(i,j)=tM(1,1);%p是改点沿x轴的单位反射率,也就是沿x轴的梯度
q(i,j)=tM(1,2);%q是改点沿y轴的单位反射率,也就是沿y轴的梯度
end
end
%对p,q进行积分,就可求出每一个像素点的高度值
for i=1:800
for j=1:800
Z(i,j) = sum(q(1:i, 1)) + sum(p(i,1:j));
end
end
Z = Z*-1;
figure(1);
hold on;
for i=1:2:800
for j=1:2:800
plot3(j+b(i,j,1),i+b(i,j,2),b(i,j,3),'b' );%显示梯度图像
end
end
hold off;
figure(2);
mesh(Z);
toc

IT狂飙
- 粉丝: 4849
- 资源: 2649
最新资源
- 基于Comsol压电相控阵的三维高精度聚焦探头的设计与应用研究,comsol压电相控阵三维聚焦技术及其在频域模型的实现与内存优化探讨,comsol压电相控阵三维聚焦探头 此为频域模型,利用压电片pzt
- 5.拼图游戏2024-06-29-121234.wmv
- ECharts仪表盘-仪表盘2.zip
- mybatis别名扫描
- 模拟电子技术中从低通到带阻滤波器转换算法的应用与设计
- 基于自适应粒子群优化的分布式电源IEEE33节点系统无功出力优化策略,以网损和电压偏移为目标函数,基于自适应粒子群优化的分布式电源IEEE33节点系统无功出力优化策略,以网损和电压偏移为目标函数,基于
- deepseek论文、应用实例和分析报告以及应用
- Python编程技巧与常用设计模式详解-掌握核心面试考点
- Airsim UAV巡航自动无碰撞源码实现方案与关键技术研究报告(针对DL00403项目),DL00403源码解析:Airsim仿真自动UAV巡航无碰撞路径规划与实现,DL00403-Airsim仿真
- 基于粒子群算法的配电网经济调度优化模型-融合风光、储能与多目标成本考量,基于粒子群算法的配电网经济调度优化模型-融合风光、储能与热力机组 采用IEEE33节点系统求解,目标实现运行成本与环境成本最
- 滤波器设计领域的Sallen-Key高通滤波器转换算法及应用
- 基于PSO-LSSVM-Adaboost算法的MISO回归预测模型:多指标评价的便捷学习与替换数据方法,基于PSO-LSSVM-Adaboost算法的MISO回归预测模型:以R2、MAE、MSE、RM
- 随机森林算法在特征选择与重要性排序中的应用及降维技术探讨,随机森林降维技术在特征选择中的重要性排序策略,随机森林降维 特征选择 重要性排序 ,随机森林降维; 特征选择; 重要性排序,随机森林降维技术:
- Abaqus批量建立非线性弹簧及多种弹簧在轨道交通车轨耦合模型中的应用,Abaqus批量建立非线性弹簧及多种弹簧在轨道交通车轨耦合模型中的应用,abaqus批量建立非线性弹簧,轨道弹簧施加;土弹簧,接
- 模拟电子学中多反馈带通滤波器的设计与实现
- 气压传感器硬件IIC、HAL库配置的例程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


