對于圖像text.png,testpat1.png,coins.png用上面提到的六種方法分別提取邊界并加以比較,對這三幅圖像提取邊界的結果,分別對每一幅圖給出你的判斷,認為哪種算子提取的邊界最好?同時理解各種邊界提取算子同時存在的必要性。對每一幅圖均標出圖題,并使圖題的位置位于圖的下方,居中,選擇其中的一幅圖,使其圖題的字體為黑體,字號為14號。
imname='text.png'
I=imread(imname);
BW1=edge(I,'sobel');
BW2=edge(I,'prewitt');
BW3=edge(I,'roberts');
BW4=edge(I,'log');
BW5=edge(I,'zerocross');
BW6=edge(I,'canny');
imshow(I);
text=strcat('圖1:',imname,'原圖')
title(text,'fontsize',14,'fontname','黑體','position',[128,280,0]);
figure;imshow(BW1);
title('圖2:sobel算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW2);
title('圖3:prewitt算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW3);
title('圖4:roberts算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW4);
title('圖5:log算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW5);
title('圖6:zerocross算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW6);
title('圖7:canny算子提取的邊界','fontsize',14,'position',[128,280,0])
imname='testpat1.png'
I=imread(imname);
BW1=edge(I,'sobel');
BW2=edge(I,'prewitt');
BW3=edge(I,'roberts');
BW4=edge(I,'log');
BW5=edge(I,'zerocross');
BW6=edge(I,'canny');
imshow(I);
text=strcat('圖1:',imname,'原圖')
title(text,'fontsize',14,'fontname','黑體','position',[128,280,0]);
figure;imshow(BW1);
title('圖2:sobel算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW2);
title('圖3:prewitt算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW3);
title('圖4:roberts算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW4);
title('圖5:log算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW5);
title('圖6:zerocross算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW6);
title('圖7:canny算子提取的邊界','fontsize',14,'position',[128,280,0])
imname='coins.png'
I=imread(imname);
BW1=edge(I,'sobel');
BW2=edge(I,'prewitt');
BW3=edge(I,'roberts');
BW4=edge(I,'log');
BW5=edge(I,'zerocross');
BW6=edge(I,'canny');
imshow(I);
text=strcat('圖1:',imname,'原圖')
title(text,'fontsize',14,'fontname','黑體','position',[128,280,0]);
figure;imshow(BW1);
title('圖2:sobel算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW2);
title('圖3:prewitt算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW3);
title('圖4:roberts算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW4);
title('圖5:log算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW5);
title('圖6:zerocross算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW6);
title('圖7:canny算子提取的邊界','fontsize',14,'position',[128,280,0])
對于圖像tire.tif,通過調整閾值的方法,得出一幅你認為較好的邊界圖,并給出此時的閾值。
I=imread('tire.tif');
[BW1,th1]=edge(I,'canny',[0.05,0.2])
th1str=num2str(th1);
imshow(I);
title('圖1:rice.png原圖','fontsize',14,'position',[128,280,0]);
figure;
imshow(BW1);
ti='圖8:sobel算子提取的邊界,閾值為';
ti=strcat(ti,th1str);title(ti,'fontsize',12,'position',[128,280,0])
對于圖像snowflakes.png用上面提到的六種方法分別提取邊界并加以比較,這次你認為那種算子提取的邊界最好?
imname='snowflakes.png'
I=imread(imname);
BW1=edge(I,'sobel');
BW2=edge(I,'prewitt');
BW3=edge(I,'roberts');
BW4=edge(I,'log');
BW5=edge(I,'zerocross');
BW6=edge(I,'canny');
imshow(I);
text=strcat('圖1:',imname,'原圖')
title(text,'fontsize',14,'fontname','黑體','position',[128,280,0]);
figure;imshow(BW1);
title('圖2:sobel算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW2);
title('圖3:prewitt算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW3);
title('圖4:roberts算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW4);
title('圖5:log算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW5);
title('圖6:zerocross算子提取的邊界','fontsize',14,'position',[128,280,0])
figure;imshow(BW6);
title('圖7:canny算子提取的邊界','fontsize',14,'position',[128,280,0])
總結
以上是生活随笔為你收集整理的数字图像的边界提取的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。