请高手帮我看段MATLAB的程序,有几个地方不懂意思,最好能帮我每句都写个注释.此程序是huffman编码.

问题描述:

请高手帮我看段MATLAB的程序,有几个地方不懂意思,最好能帮我每句都写个注释.此程序是huffman编码.
I=imread(‘code.gif’);
[m,n]=size(I);
p1=1;s=m*n;
for k=1:m
for L=1:n
f=0;
for b=1:p1-1
if (c(b,1)==I(k,L)) f=1;break;end
end
if(f==0) c(p1,1)=I(k,L);p1=p1+1;end
end
end
上面这段程序将图像的不同颜色统计在数组c的第一列中.
for g=1:p1-1
p(g)=0;c(g,2)=1;
for k=1:m
for L=1:n
if(c(g,1)==I(k,L)) p(g)=p(g)+1;end
end
end
p(g)=p(g)/s;
end
这段程序将相同颜色的像素数占图像总数的比例统计在数组p中
pn=0;po=1;
while(1)
if(pn>=1.0) break;
else
[pm,p2]=min(p(1:p1-1));p(p2)=1.1;
[pm2,p3]=min(p(1:p1-1));p(p3)=1.1;
pn=pm+pm2;p(p1)=pn;
tree(po,1)=p2;tree(po,2)=p3;
po=po+1;p1=p1+1;
end
end
主要是在 for L=1:n
f=0;
for b=1:p1-1
if (c(b,1)==I(k,L)) f=1;break;end
end
if(f==0) c(p1,1)=I(k,L);p1=p1+1;end
end
这里p1前面已经赋值1,在 for b=1:p1-1这里如何操作呢?用C语言的语法实在难以理解,
1个回答 分类:综合 2014-09-18

问题解答:

我来补答
for b= 1:pi-1 就是说循环 pi-1 次.b是循环变量.相当于c的for(i=1,i
再问: 那前面p1已经赋值1.这里for b=1:p1-1不就是b=1:0?
再答: 程序我没细看,就是针对语法给你回答了一下。确实是像你说的 for b=1:0 这样是不能进入for循环的,所以这个程序有问题,哈夫曼编码我没研究过,没法给你改代码。网上搜到一个matlab的,你参考下吧,没空研究了。 http://zhidao.baidu.com/question/202132887.html
 
 
展开全文阅读
剩余:2000
上一页:课时练P3