close all force;
%% 读取图片,转化为灰度
z = double(rgb2gray(imread('111.jpg')));
% z = double((imread('mozart1.pgm')));
bb=downsample(z,10);
cc=downsample(bb.',10);
z=cc.';
clc
s = size(z);
%% 幅度归一化
z = z/max(max(z));
%% 计算z的imfilter,选中imfilter,按键F1,看注释
gradx = 0.5*imfilter(z,[-1 0 1]);
grady = 0.5*imfilter(z,[-1 0 1]');
frac = 0.5;
t = gradx;
%% 屏蔽超过阈值的点
t(gradx<frac*max(max(gradx))) = 0;
t2 = gradx;
t2(gradx>frac*min(min(gradx))) = 0;
%% 屏蔽低于阈值的点,底下的语句大部分很简单,应该可以看懂吧
t3 = grady;
t3(grady<frac*max(max(grady))) = 0;
t4 = grady;
t4(grady>frac*min(min(grady))) = 0;
gt = zeros(s);
ft = zeros(s);
ft(t~=0) = -2;
ft(t2~=0) = 2;
gt(t3~=0) = 2;
gt(t4~=0) = -2;
ft1 = ft;
gt1 = gt;
y = ft.^2 + gt.^2;
ft1(y~=4) = 0;
gt1(y~=4) = 0;
ite = 5; %迭代次数 可以设置
lamb = 1;
fs = ft1;
gs = gt1;
laplacian = (1/8)*[1 1 1; 1 0 1; 1 1 1];
%% 开始迭代,循环
for k = 1:ite
%% 计算r1 r2
r1 = ((-1*(fs.^2))+(-1*(gs.^2))+4)./(((fs.^2))+((gs.^2))+4);
r2 = 1./(((fs.^2))+((gs.^2))+4).^2;
%% 计算频域的平滑函数
fsmooth = imfilter(fs,laplacian);
fdata = (1/lamb)*32*fs.*r2.*(z-r1);
% fs = fsmooth + fdata;
fs(ft==0) = fsmooth(ft==0) - fdata(ft==0);
gsmooth = imfilter(gs,laplacian);
gdata = (1/lamb)*32*gs.*r2.*(z-r1);
% gs = gsmooth + gdata;
gs(gt==0) = gsmooth(gt==0) - gdata(gt==0);
end
%% 根据以上计算的fs和gs计算p和q,准备分别从p和q重建三维图像
p = (fs./2).*((1+r1)./r1);
q = (gs./2).*((1+r1)./r1);
%% 求pq模仿的倒数
r = 1./((p.^2 + q.^2 + 1).^2);
% mesh(r1);
p1 = p; q1 = q;
p1(z==0) = 0;
q1(z==0) = 0;
ps=zeros(s);
qs=zeros(s);
%% 完成重建
for i= 1:s(2)
ps(:,i) = sum(p1(:,1:i),2);
end
ps(z==0) = 0;
for i = 1:s(1)
qs(i,:)= sum(q1(i:end,:));
end
qs(z==0) = 0;
zs = ps+qs;
%% 画图
figure;subplot(1,2,1),imshow(p,[]);title('p');subplot(1,2,2),imshow(q,[]);title('q');hold on;
figure;subplot(1,2,1),imshow(fs,[]);title('f');subplot(1,2,2),imshow(gs,[]);title('g');hold on;
figure;subplot(1,2,1),mesh(r1);title('3-D reconstructed from f&g');subplot(1,2,2),mesh(r);title('3-D reconstructed from p&q');hold on;
%%
figure;
subplot(1,2,1);
plot(p(:,150));
subplot(1,2,2)
plot(p(100,:),'-r')
基于MATALB编程的微泡检测,基于MATALB编程的目标检测,图像处理(代码完整,数据齐全)
版权申诉
154 浏览量
2024-01-14
15:05:46
上传
评论
收藏 506KB ZIP 举报
神经网络机器学习智能算法画图绘图
- 粉丝: 2436
- 资源: 598
最新资源
- 微信小程序 - 同乐居商城:购物车合算源码
- 1、根据输入的三条边值判断能组成何种三角形,并设计测试数据进行判定覆盖测试 三条边为变量a、b、c,范围为1≤边值≤10,不在范
- SQL server 练习题目8道(小白教学).zip
- Python 手写实现 iD3 决策树算法-根据信息增益公式.zip
- 411675952289057车联助手-小窗版(三星)3.5.1.apk
- 三种快速排序方法合并在一个文件中以便直接运行的Python代码示例
- 937712277954201实习5.word
- 2程序语言基础知识pdf1_1716337722703.jpeg
- 简单的Python示例,演示了如何使用TCP/IP协议进行基本的客户端和服务器通信
- 考试.sql
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈