小白求助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. 展开
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. 展开
展开全部
从哪里找来的代码?里面错误太多了。
有些错能判断出本意是什么,但有些错不知是要干什么的。
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 广告
2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点...
点击进入详情页
本回答由百事牛提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询