声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1329|回复: 12

[编程技巧] 求助关于matlab的一段代码解释

[复制链接]
发表于 2008-5-16 16:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
h = [0.125,0.375,0.375,0.125];
g = [0.5,-0.5];
delta = [1,0,0];
J = 3;
a(1:N,1:M,1,1:J+1) = 0;
dx(1:N,1:M,1,1:J+1) = 0;
dy(1:N,1:M,1,1:J+1) = 0;
d(1:N,1:M,1,1:J+1) = 0;
a(:,:,1,1) = conv2(h,h,I,'same');
dx(:,:,1,1) = conv2(delta,g,I,'same');
dy(:,:,1,1) = conv2(g,delta,I,'same');
x = dx(:,:,1,1);
y = dy(:,:,1,1);
d(:,:,1,1) = sqrt(x.^2+y.^2);
I1 = imadjust(d(:,:,1,1),stretchlim(d(:,:,1,1)),[0 1]);figure;imshow(I1);
刚开始学matlab,有些语法还不懂,恳请大家帮我解释下以上代码,万分感激!!
回复
分享到:

使用道具 举报

发表于 2008-5-16 16:33 | 显示全部楼层

回复 楼主 的帖子

具体哪个命令不知道,可以查看帮助

另外,你M,N 都没有定义
发表于 2008-5-16 17:03 | 显示全部楼层

回复 2楼 的帖子

那个m,n前面有定义,我没拷过来,是矩阵的行和列,
英语比较差,看了帮助不是很懂,可以帮我解释下
a(1:N,1:M,1,1:J+1) = 0;
dx(1:N,1:M,1,1:J+1) = 0;
dy(1:N,1:M,1,1:J+1) = 0;
d(1:N,1:M,1,1:J+1) = 0;
是什么意思吗?
发表于 2008-5-16 17:44 | 显示全部楼层

回复 3楼 的帖子

a(1:N,1:M,1,1:J+1) = 0;
a 是一个N*M*1*J+1的4维数组

刚开始我也不知道,但是
你运行一下,结果就出来了
发表于 2008-5-16 21:36 | 显示全部楼层

回复 4楼 的帖子

能帮我解释下这个程序主要是想实现一个什么吗?
发表于 2008-5-16 21:40 | 显示全部楼层
你哪里找来的程序:@L
发表于 2008-5-16 21:50 | 显示全部楼层
网上下的,没办法明后天要交了,然后matlab以前又没学过,只能求救大家了下面是整个程序,能帮忙办给我看一下吗?
load wbarb;
I = ind2gray(X,map);imshow(I);
I1 = imadjust(I,stretchlim(I),[0,1]);figure;imshow(I1);
[N,M] = size(I);
h = [0.125,0.375,0.375,0.125];
g = [0.5,-0.5];
delta = [1,0,0];
J = 3;
a(1:N,1:M,1,1:J+1) = 0;
dx(1:N,1:M,1,1:J+1) = 0;
dy(1:N,1:M,1,1:J+1) = 0;
d(1:N,1:M,1,1:J+1) = 0;
a(:,:,1,1) = conv2(h,h,I,'same');
dx(:,:,1,1) = conv2(delta,g,I,'same');
dy(:,:,1,1) = conv2(g,delta,I,'same');
x = dx(:,:,1,1);
y = dy(:,:,1,1);
d(:,:,1,1) = sqrt(x.^2+y.^2);
I1 = imadjust(d(:,:,1,1),stretchlim(d(:,:,1,1)),[0 1]);figure;imshow(I1);
lh = length(h);
lg = length(g);
for j = 1:J+1
  lhj = 2^j*(lh-1)+1;
  lgj = 2^j*(lg-1)+1;
  hj(1:lhj)=0;
  gj(1:lgj)=0;
  for n = 1:lh
    hj(2^j*(n-1)+1)=h(n);
  end
  for n = 1:lg
    gj(2^j*(n-1)+1)=g(n);
  end
  
  a(:,:,1,j+1) = conv2(hj,hj,a(:,:,1,j),'same');
  dx(:,:,1,j+1) = conv2(delta,gj,a(:,:,1,j),'same');
  dy(:,:,1,j+1) = conv2(gj,delta,a(:,:,1,j),'same');
  x = dx(:,:,1,j+1);
发表于 2008-5-16 21:52 | 显示全部楼层
y = dy(:,:,1,j+1);
  dj(:,:,1,j+1) = sqrt(x.^2+y.^2);
  I1 = imadjust(dj(:,:,1,j+1),stretchlim(dj(:,:,1,j+1)),[0 1]);figure;imshow(I1);
end
发表于 2008-5-17 08:56 | 显示全部楼层

回复 8楼 的帖子

网上找的,那你是随便找的吗
没有一点点的说明吗
发表于 2008-5-17 09:08 | 显示全部楼层
估计是做毕业设计,没时间了。随便找的吧。
发表于 2008-5-17 09:19 | 显示全部楼层
是毕业设计,网上没说明哦!代码看不懂,现在老师叫我加个滤波功能就加不进去了,各位能不帮忙看下
发表于 2008-5-17 09:57 | 显示全部楼层

回复 11楼 的帖子

你既然看不懂,那为什么会选这个程序
你怎么知道,这段程序就和你的毕业设计相关:@L
发表于 2008-5-17 22:03 | 显示全部楼层
这个是一个使用小波变换的来实现图像边缘检测的程序
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 02:19 , Processed in 0.066187 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表