图像边界提取与分割2

边界跟踪与直线检测

示例一:

clc

clear all;

 

 rgb=imread('001.png');

figure,imshow(rgb);

I=rgb2gray(rgb);

threshold=graythresh(I);

BW=im2bw(I,threshold);

figure,imshow(BW);

dim=size(BW);

col=round(dim(2)/2)-90;

row=find(BW(:,col),1);

connectivity=8;

num_points=180;

contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_points);

figure,imshow(rgb);

hold on;

plot(contour(:,2),contour(:,1),'g','LineWidth

示例二:

rgb=imread('001.png');

I=rgb2gray(rgb);

threshold=graythresh(I);

BW=im2bw(I,threshold);

figure,imshow(BW);

[B,L]=bwboundaries(BW,'noholes');

imshow(label2rgb(L,@jet,[.5 .5 .5]));

hold on;

for k=1:length(B);

    boundary=B(k);

plot(boundary(:,2),boundary(:,1),'w','LineWidth',2);

end

示例三:

rgb=imread('001.png');

I=rgb2gray(rgb);

threshold=graythresh(I);

BW=im2bw(I,threshold);

figure,imshow(BW);

B=bwboundaries(BW);

C=B{1,1};

figure

plot(C(:,2),C(:,1))

set(gca,'YDir','reverse')

 

 

你可能感兴趣的:(Matlab学习与实验,plot,im,c)