交互式选择多边形区域

来源:互联网 发布:python 时间序列处理 编辑:程序博客网 时间:2024/04/28 20:56
clcclear[filename,pathname,q]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.png'});if q>0path=strcat(pathname,filename);I = imread(path);figureimshow(I);endp=size(I,3);if p==3r=I(:,:,1);g=I(:,:,2);b=I(:,:,3);I1=rgb2gray(I);else    I1=I;endhold on[x,y,c]=ginput(1);m(1)=x;n(1)=y;plot(x,y,'r');k=2;while(c==1)    [x1,y1,c1]=ginput(1);    if c1==1    m(k)=x1;    n(k)=y1;    plot(x,y,'r');    line([m(k-1) m(k)],[n(k-1) n(k)]);    k=k+1;    c=c1;    else        break    endendline([m(k-1) m(1)],[n(k-1) n(1)]);BW = roipoly(I1,m,n); if p==3    r1=double(r).*double(BW);    g1=double(g).*double(BW);    b1=double(b).*double(BW);    i1=cat(3,r1,g1,b1);    figure    imshow(mat2gray(i1));else     i2=double(I1).*double(BW);    figure    imshow(mat2gray(i2));end

原创粉丝点击