I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');
BW1=edge(I,'roberts');
[BW1,thresh1]=edge(I,'roberts');
figure;
%subplot(1,2,1);
imshow(BW1);
BW1=edge(I,'roberts',0.05);
figure;
%subplot(1,2,2);
imshow(BW1);
BW2=edge(I,'sobel');
figure;
%subplot(1,3,1);
imshow(BW2);
[BW2,thresh2]=edge(I,'sobel');
BW2=edge(I,'roberts',0.05,'horizontal');
figure;
%subplot(1,3,2);
imshow(BW2);
BW2=edge(I,'roberts',0.05,'vertical');
%subplot(1,3,3);
imshow(BW2);
BW3=edge(I,'prewitt');
figure;
subplot(1,3,1);imshow(BW3);
[BW3,thresh3]=edge(I,'prewitt');
BW3=edge(I,'roberts',0.05,'horizontal');
subplot(1,3,2);imshow(BW3);
BW3=edge(I,'prewitt',0.05,'vertical');
subplot(1,3,3);imshow(BW3);
尝试将 SCRIPT a 作为函数执行:
C:\Users\佳炜\Documents\MATLAB\a.m
谢谢!
因为代码保存成文件a.m了,或者是另外有保存成a.m的文件。
需要注意,MATLAB 的程序调用一般是根据文件名(类的方法除外),代码第一句:
这里的a会被视为一个函数的名字,但 a.m 并不是函数文件,所以会导致报错,从后续代码判断,第一句的作用应该是读入图像。
可以改成:
I=imread('C:/Users/佳炜/Documents/MATLAB/lena.bmp');
script一般编写相应的函数,对应相应的.m文件名字。
注意 .m文件要在当前matlab的工作区显示框中。
for i=1:10
x = linspace(0,10,101);
plot(x,sin(x+i));
print(gcf, '-deps', strcat('plot', num2str(i), '.ps'));
end
例如:
function test()
while(1)
x = input('Temperature in F: ');
if(~isempty(x))
disp(['==> Temperature in C = ',num2str((x-32)*5/9)]);
else
break;
end
end
你是不是把这段代码保存成文件 a.m 了?或者是另外有保存成 a.m 的文件?
需要注意,MATLAB 的程序调用一般是根据文件名(类的方法除外),你代码第一句
I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');这里的a会被视为一个函数的名字,但 a.m 并不是函数文件,所以会导致报错。
从后续代码判断,第一句的作用应该是读入图像,可以改成
I=imread('C:/Users/佳炜/Documents/MATLAB/lena.bmp');本回答被提问者和网友采纳