0001 function [gridout,win,nobadpts]=getsubpixcrnrs(img,crnrpts,grid)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 gridx=grid(:,:,1);
0013 gridy=grid(:,:,2);
0014 indcs=find(gridx)';
0015
0016 gridpts=gridx(indcs);
0017 gridpts=[gridpts;gridy(indcs)];
0018
0019 gridout=zeros(size(grid));
0020 bad=false(size(grid,1),size(grid,2));
0021
0022 win=Inf;
0023
0024
0025 for cntr=1:size(gridpts,2)
0026 ctwin=round(getwin(img,gridpts(:,cntr),crnrpts)/2);
0027
0028 if ctwin<win && ctwin>2
0029 win=ctwin;
0030 end
0031 end
0032
0033
0034 for x=1:size(grid,1)
0035 for y=1:size(grid,2)
0036 currentpt=squeeze(grid(x,y,:));
0037 [subpxpt,goodpt,badpt]=subpixcrnr(currentpt,img,win,win);
0038 gridout(x,y,:)=subpxpt;
0039 bad(x,y)=badpt;
0040 end
0041 end
0042
0043
0044 [badptsx,badptsy]=find(bad);
0045 nobadpts=length(badptsx);
0046 gridout=getgoodsubrect(gridout,badptsx,badptsy);
0047