程序中第一次使用imshow前面可不加figure语句;但第二次及之后再次使用imshow,前面要加上figure语句,比如你的程序可修改为
I=imread('sea.png');
mysize=size(I);
if numel(mysize)>2
I=rgb2gray(I); %若为彩色图像,将其转换为灰度图像
else
I=I;
end
BW=edge(I,'canny');
imshow(I);title('原图');
figure;
imshow(BW);title('canny算子检测图');
是不是程序后面掉了一个end
你没有对彩色图像进行灰度化,edge这个函数一定要是灰度图像