Subversion Repositories seema-scanner

Rev

Rev 121 | Rev 167 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 121 Rev 122
Line 186... Line 186...
186
            labelVert = codeVert.at<int>(row, col);
186
            labelVert = codeVert.at<int>(row, col);
187
            labelVertBelow = codeVert.at<int>(row+1, col);
187
            labelVertBelow = codeVert.at<int>(row+1, col);
188
 
188
 
189
            // labels need to be non-background, and differ in exactly one bit
189
            // labels need to be non-background, and differ in exactly one bit
190
            if(labelHorz != -1 && labelHorzRight != -1 &&
190
            if(labelHorz != -1 && labelHorzRight != -1 &&
191
               countBits(labelHorz^labelHorzRight) == 1 &&
191
               (grayToBinary(labelHorzRight) == grayToBinary(labelHorz)+1) &&
192
               labelVert != -1 && labelVertBelow != -1 &&
192
               labelVert != -1 && labelVertBelow != -1 &&
193
               countBits(labelVert^labelVertBelow) == 1){
193
               (grayToBinary(labelVertBelow) == grayToBinary(labelVert)+1)){
194
 
194
 
195
                // shift together labels to form unique intersection id
195
                // shift together labels to form unique intersection id
196
                unsigned long id = ((ulong)labelHorz << (NbitsHorz+2*NbitsVert)) + ((ulong)labelHorzRight << (2*NbitsVert)) +
196
                unsigned long id = ((ulong)labelHorz << (NbitsHorz+2*NbitsVert)) + ((ulong)labelHorzRight << (2*NbitsVert)) +
197
                                   ((ulong)labelVert << NbitsVert) + (ulong)labelVertBelow;
197
                                   ((ulong)labelVert << NbitsVert) + (ulong)labelVertBelow;
198
 
198