matlab程序出错,请朋友帮下。
>> a=0;
for i=1:70 %采用循环读入图像
imageName=strcat(num2str(i),'.tif');
f=imread('F:\纸样\1.tif');
grad(x,y)=sqrt((f(x,y)-f(x+1,y+1))^2+(f(x+1,y)-f(x,y+1))^2);
A=mean(mean(grad));
a=a+1;
G(a)=A;
end
GG=G,
%视觉变化
V=[2.86 1.00 2.30 2.45 1.21 2.35 2.43 1.54
1.06 1.51 1.47 1.43 1.88 1.16 1.00 1.16 1.73 2.55 2.90 2.67 1.21 2.54 1.73 2.21 2.34 3.00 2.87 2.06 2.80 2.41 2.90 2.62 1.59 2.70 3.00 2.67 2.47 2.32 2.63 2.63 2.87 2.40 1.51 2.40 2.11 2.43 2.90 2.75 2.95 3.00 2.30 2.87 2.85 2.95 2.25 2.50 2.90 2.58 2.61 3.00 2.47 2.35 1.61 2.58 1.50 2.55 2.47 1.63 2.50 2.95]
%绘制图形
figure(1);
plot(GG,V,'k*');
R=corr(GG',V'),
xlabel('GG')
ylabel('Ranking')
title('COV计算')
运行结果显示
??? Undefined function or variable 'x'.
请朋友帮我找出错误
追问:A=imread('F:\纸样\1.tif');
f=double(A);
[m n]=size(f);
for i=1:m-1
for j=1:n-1
g(i,j)=sqrt((f(i,j)-f(i+1,j+1))^2+(f(i+1,j)-f(j+1))^2);
end
end
B=mean(g(:));
C=std(g(:))
a=a+1;
G(a)=B;
end
GG=G,
把程序的一部分改了下,能计算一张图像的灰度梯度了,但是计算不出70张图像的灰度。作图的时候灰度梯度只是第一张的,和V数值对应不上。
Q上聊,这里怎么都不方便,1592033746,我等你到1点。
懒得在这里说是因为问题挺多的。
你这很明显是copy了别人的什么程序,那个imagename为的是循环读图,你看你那个imread后面写了些什么。。。还有一堆不必要的诡异语句。。。如果你不是在应付差事而是想把这个弄好我不介意一句一句跟你慢慢说。如果你只要一个程序的结果将来不玩matlab
那么,
imageName=strcat(num2str(i),'.tif');
f=imread('F:\纸样\1.tif');
这两句有问题。
具体替换的话,如果你的70张图片命名有规律,那么,imagename就可以。
没有的话, mydir = dir('路径+*.tif');
f = imread(['路径',mydir(i).name]);
之类的自己慢慢改。
别追问了,再想问我就加Q。。
我也就今天一天闲的无聊当好心人。
答案:grad(x,y)=sqrt((f(x,y)-f(x+1,y+1))^2+(f(x+1,y)-f(x,y+1))^2);
这里问题出的很夸张啊。。
你应该是要算全图的某种梯度吧。。。
不会矩阵操作的话乖乖写个for循环。
上一个:【matlab】这段程序为什么总是出现statement is incompleted???急,跪求解答!
下一个:dijkstra法的MATLAB程序中最后的矩阵DD是什么意思?