求高手给解读这个程序,越详细越好。。。。

% Hough 变换
i=imread('333.jpg');
i=rgb2gray(i);
i_long =size(i,1);
i_width=size(i,2);
i_edge=edge(i,'sobel');
i_hough=zeros(300,300);
theta_step=3.14*2/299;
theta=0:theta_step:2*3.14;
x_max=1;
x_min=1;
y_max=1;
y_min=1;
for x=1:i_long
for y=1:i_width
if i_edge(x,y)==1
x_max=max(x_max,x);
x_min=min(x_min,x);
y_max=max(y_max,y);
y_min=min(y_min,y);
end
end
end

p_min=sqrt(x_min^2+y_min^2);
p_max=sqrt(x_max^2+y_max^2);
p_step=2*p_max/299;
p=-p_max:p_step:p_max;

for x=1:i_long
for y=1:i_width
if i_edge(x,y)==1 %对于边缘点进行累加
rou=x.*cos(theta)+y.*sin(theta);
w=fix(rou./p_step)+151;
l=fix(1+theta./theta_step);
n=300.*(l-1)+w;
i_hough(n)=i_hough(n)+1;
end
end
end
m=max(max(i_hough));
i_hough=(i_hough./m);
imshow(i_hough)

第1个回答  2012-05-12
这是个把数字倒序输出,比如输入“123”则输出“321”
前面的不解释了,当你给n赋值后。当n为个位数,则a[0]等于n并输出,当n为两位数以上,则执行“a[i](i初时为0)为n的个位,n除10(意思就是把百位变十位,十位变个位),i自加1”这样重复执行直到n的最高位赋给a[i],然后将i的值赋给b,然后输出
第一行,引用输入输出头文件
第二行,主函数
四,声明n,b,i为整型变量,其中i=0
五,声明一个十维数组a
六,输入一个值,将值赋给n
七,当n>9的时候(即n为多位数),执行大括号内的语句
其他的前面讲了,最后输出的时候,从a[0]到a[i]输出,完成了倒序输出,还有哪不懂请具体说明哪句,我好给你解释
参考资料:如果您的回答是从其他地方引用,请表明出处追问

你回答的是我提的问题吗??一点都对不上,不要敷衍我好不好,我虽然matlab还是个新手,但也看得出你说的跟我提的问题根本就是两码事。。。我是真的很想知道,如果你是敷衍我的话,恕我不能吧满意答案给你。。。抱歉!!!!!

相似回答
大家正在搜