function markPolys(classInd)
h=gcf;
ds=get(h,'UserData');
I=ds.im;
if (classInd==1)
    %x=ds.xf; y=ds.yf;
    x=ds.asxf; y=ds.asyf;
    sx=ds.sxf; sy=ds.syf;
    c='.b';
    sc='b';
else
    %x=ds.xb; y=ds.yb;
    x=ds.asxb; y=ds.asyb;
    sx=ds.sxb; sy=ds.syb;
    c='.r';
    sc='r';
end
if (size(ds.oim,3)==3)
  oim=rgb2gray(ds.oim);
else
  oim=ds.oim;
end
dx=conv2(oim,[-1,1],'same');
dx(:,end)=0;
dy=conv2(oim,[-1,1]','same');
dy(end,:)=0;
g=(dx.^2+dy.^2).^0.5;

%rper=0.12;
rper=0.2;
wd=2;
stop=0;
subplot(1,3,1)
hold on
cx=[]; cy=[];
while(~stop)
   [tx,ty,bot]=ginput(1);
   if (bot==3)
       stop=1;
       break
   end
   if (bot==1)
      cx(end+1)=tx; cy(end+1)=ty;
      subplot(1,3,1); hold on; plot(tx,ty,c);
      subplot(1,3,2); hold on; plot(tx,ty,c);
      subplot(1,3,3); hold on; plot(tx,ty,c);
   end
   if (bot==2)
     subplot(1,3,1); hold on; plot(cx([1:end,1]),cy([1:end,1]),sc);
     subplot(1,3,2); hold on; plot(cx([1:end,1]),cy([1:end,1]),sc);
     subplot(1,3,3); hold on; plot(cx([1:end,1]),cy([1:end,1]),sc);
     
     bw=roipoly(I,cx,cy);
     ttinds=find(bw);
     tg=g.*bw;
     ttinds=ttinds(find(rand(size(ttinds))<=rper));
     tt=VecIndexToIm(ttinds,size(I,1));
     txi=tt(2,:)';
     tyi=tt(1,:)';
     txi=min(txi,size(I,2));
     tyi=min(tyi,size(I,1));
     for j=1:length(txi)
        i1=max(tyi(j)-wd,1); i2=min(tyi(j)+wd,size(I,1));
        j1=max(txi(j)-wd,1); j2=min(txi(j)+wd,size(I,2));
        [sv,si]=max(tg(i1:i2,j1:j2));
        [sv,sj]=max(sv);
        si=si(sj);
        ttinds(j)=imIndexToVect(si+i1-1,sj+j1-1,size(I,1));
        tg(ttinds(j))=0;
     end
     tt=VecIndexToIm(ttinds,size(I,1));
     y=[y;tt(1,:)'];
     x=[x;tt(2,:)'];
     sx{end+1}=cx;
     sy{end+1}=cy;
     cx=[]; cy=[];
   end 
   
end    
if (classInd==1)
  ds.asxf=x; ds.asyf=y;
  ds.sxf=sx; ds.syf=sy;
else
  ds.asxb=x; ds.asyb=y;
  ds.sxb=sx; ds.syb=sy;
end
set(h,'UserData',ds);
