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
没有合适的资源?快使用搜索试试~ 我知道了~
基于MATLAB+sfs算法对目标的多角度图像进行三维重构+使用说明文档.rar
共8个文件
png:6个
md:1个
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 12 浏览量
2024-05-22
16:23:11
上传
评论
收藏 510KB RAR 举报
温馨提示
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB+sfs算法对目标的多角度图像进行三维重构+使用说明文档.rar 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于MATLAB+sfs算法对目标的多角度图像进行三维重构+使用说明文档.rar (8个子文件)
vase6.png 86KB
vase1.png 86KB
vase2.png 84KB
vase3.png 85KB
说明文档.md 13KB
vase4.png 88KB
vase5.png 84KB
reconsitution.m 2KB
共 8 条
- 1
资源评论
IT狂飙
- 粉丝: 4824
- 资源: 2654
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C++和HDF5的二维扩散模拟系统.zip
- 现代 Java - Java 8 指南.zip
- 灌篮高手 JavaScript.zip
- (源码)基于Java和C++的魔塔AI与可视化系统.zip
- (源码)基于ESP32的URock机器人控制系统.zip
- 深度学习(Python、C、C++、Java、Scala、Go).zip
- (源码)基于Spring Boot和Vue的社交平台系统.zip
- 深入理解Java函数式Smashing和Streams API.zip
- (源码)基于Spring Boot框架的酒店管理系统.zip
- 浏览 JavaScript 程序的语言和原理 45 节课程,+6 个小时的视频和 130 个笑话 .zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功