小白求助matlab代码出错 不知道怎么改 急急急 求助

formatratimg=imread('e1.jpg');a=rgb2gray(img);Af=img(;,;,1);a=rat(1,Af);A=imnist(a);[... format rat
img=imread('e1.jpg');
a=rgb2gray(img);
Af=img(;,;,1);
a=rat(1,Af);

A=imnist(a);

[f r]=size(a);
N=f*r;

for i=1:256
Px(i)=A(i,1)/N;
end
P=zeros(256,256);
Q=zeros(256,256);
R=zeros(256,256);
P(1,1)=Px(1);
Q(1,1)=0;
for j=1:255
P(1,j+1)=P(1,j)+Px(j+1);
end
for i=2:256
for j=i:256
P(i,j)=P(1,j)=P(1,i-1);
end
end
for j=1:255
if Px(j+1)==0
Q(1,j+1)=Q(1,j);
else
Q(1,j+1)=Q(1,j)+Px(j+1)*log(Px(j+1));
end
end
for i=2:256
for j=i:256
Q(1,j)=Q(1,j)=Q(1,i-1);
end
end

for i=1:256
for j=1:256
ifP(i,j)==0
R(i,j)=0;
else
R(i,j)=log(P(i,j))-Q(i,j)/P(i,j);
end
end
end

E=zeros(256,256,256);
for t1=1:255
fort2=t1+1:255
fort3=t2+1:255
E(t1,t2,t3)=R(1,t1)+R(t1+1,t2)+R(t2+1,t3)+R(t3+1,256);
end
end
end
max(max(max(E)))
[Amax,indmax]=max(E(:));
[i,j,w]=ind2sub(size(E),indmax);
t1=i-1;
t2=j-1;
t3=w-1;
for ii=1;r
for jj=1:c
ifa(ii,jj)<=t1
a(ii,jj)=0;
elseif(t1<a(ii,jj))&&(a(ii,jj)<=t2)
a(ii,jj)=255/3;
elseif(t2<a(ii,jj))&&(a(ii,jj)<=t3)
a(ii,jj)=255*2/3;
else
a(ii,jj)=255;
end
end
end
inshow(a);

这是报错
??? Af=img(;,;,1);
|
Error: Incomplete or misformed expression or statement.
展开
 我来答
tianxiawulang
推荐于2016-09-03 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2578万
展开全部

从哪里找来的代码?里面错误太多了。

有些错能判断出本意是什么,但有些错不知是要干什么的。

 

1、现在出错的这行:

Af=img(;,;,1);

应为

Af=img(:,:,1);

代码把冒号误为分号了。

 

2、这一行

P(i,j)=P(1,j)=P(1,i-1);

第2个等号可能应该是加号或减号之类的。

 

类似的还有

Q(1,j)=Q(1,j)=Q(1,i-1);

 

3、多处关键字和后面的变量连到一起了,例如

ifP(i,j)==0

应为

if P(i,j)==0

 

类似的还有

    fort2=t1+1:255
        fort3=t2+1:255

应为

    for t2=t1+1:255
        for t3=t2+1:255

 

还有

ifa(ii,jj)<=t1

 应为

if a(ii,jj)<=t1

4、这句

A=imnist(a);

里面的函数imnist怀疑可能是imhist。

 

总之问题太多,建议搞清楚代码的来源,消除这些低级错误再说吧。

百事牛
2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点... 点击进入详情页
本回答由百事牛提供
百度网友db4b04636
2015-06-01 · TA获得超过2914个赞
知道小有建树答主
回答量:834
采纳率:92%
帮助的人:331万
展开全部
第四行语法就不正确。Af=img(;,;,1);

应该问问你想干什么,再去修改。
我猜测是是由于冒号错写成分号;试试这个Af=img(:,:,1);
追问
是要完成最大熵阈值分割图像,能帮忙改一下错误吗,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式