# HG changeset patch # User pkienzle # Date 1094568470 0 # Node ID 890a877de34053b037eb1c79324cc971dc4fd1b2 # Parent 4ce5827eb6998d79b5a32e4abac3dc7796a38819 Avoid segfaults on pre-2.1.58 octave. Invisible whitespace changes. diff -r 4ce5827eb699 -r 890a877de340 main/image/poly2mask.m --- a/main/image/poly2mask.m Tue Sep 07 10:31:21 2004 +0000 +++ b/main/image/poly2mask.m Tue Sep 07 14:47:50 2004 +0000 @@ -62,6 +62,7 @@ endif ## create output matrix + uint8(0); ## This fails for octave < 2.1.58 BW=logical(zeros(m,n,"uint8")); ## close polygon if needed @@ -86,14 +87,14 @@ m_inv=(exmaxy-exminy)./(emaxy-eminy); ## calculate inverse slope ge=[emaxy, eminy, exmaxy, m_inv]; ## build global edge table ge=sortrows(ge,[1,3]); ## sort on eminy and exminy - + ## we add an extra dummy edge at the end just to avoid checking ## while indexing it ge=[-Inf,-Inf,-Inf,-Inf;ge]; - + ## initial parity is even (0) parity=0; - + ## init scan line set to bottom line sl=ge(size(ge,1),1); @@ -132,12 +133,11 @@ ## we eliminate segments outside window ie=ie(:,find(ie(1,:)<=n)); ie=ie(:,find(ie(2,:)>=1)); - for i=1:columns(ie) BW(sl,ie(1,i):ie(2,i))=true; endfor endif - + ## decrement scan line sl-=1; @@ -145,7 +145,7 @@ ## this discards ymin border of image (this differs from version at ## http://www.cs.rit.edu/~icss571/filling/ which discards ymax). ae=ae(find(ae(:,1)!=sl),:); - + ## update x (x1=x0-1/m) ae(:,2)-=ae(:,3); @@ -154,7 +154,7 @@ ae=vertcat(ae,ge(gei,2:4)); gei-=1; endwhile - + ## order the edges in ae by x value if(rows(ae)>0) ae=sortrows(ae,2); @@ -235,6 +235,9 @@ % % $Log$ +% Revision 1.5 2004/09/07 14:47:50 pkienzle +% Avoid segfaults on pre-2.1.58 octave. Invisible whitespace changes. +% % Revision 1.4 2004/09/03 17:12:36 jmones % Uses uint8 to save some temporal memory (suggested by David Bateman) % @@ -247,4 +250,4 @@ % Revision 1.1 2004/08/11 17:34:11 jmones % poly2mask added: creates filled polygon bw mask % -% \ No newline at end of file +%