docs: public static void markRegionBorders(GrayS32 labeled , GrayU8 output ) {
  
  		InputSanityCheck.checkSameShape(labeled,output);
  
  		ImageMiscOps.fill(output,0);
  
  		for( int y = 0; y < output.height-1; y++ ) {
  			int indexLabeled = labeled.startIndex + y*labeled.stride;
  			int indexOutput = output.startIndex + y*output.stride;
  
  			for( int x = 0; x < output.width-1; x++ , indexLabeled++ , indexOutput++ ) {
  				int region0 = labeled.data[indexLabeled];
  				int region1 = labeled.data[indexLabeled+1];
  				int region2 = labeled.data[indexLabeled+labeled.stride];
  
  				if( region0 != region1 ) {
  					output.data[indexOutput] = 1;
  					output.data[indexOutput+1] = 1;
  				}
  
  				if( region0 != region2 ) {
  					output.data[indexOutput] = 1;
  					output.data[indexOutput+output.stride] = 1;
  				}
  			}
  		}
  
  		for( int y = 0; y < output.height-1; y++ ) {
  			int indexLabeled = labeled.startIndex + y*labeled.stride + output.width-1;
  			int indexOutput = output.startIndex + y*output.stride + output.width-1;
  
  			int region0 = labeled.data[indexLabeled];
  			int region2 = labeled.data[indexLabeled+labeled.stride];
  
  			if( region0 != region2 ) {
  				output.data[indexOutput] = 1;
  				output.data[indexOutput+output.stride] = 1;
  			}
  		}
  
  		int y = output.height-1;
  		int indexLabeled = labeled.startIndex + y*labeled.stride;
  		int indexOutput = output.startIndex + y*output.stride;
  		for( int x = 0; x < output.width-1; x++ , indexLabeled++ , indexOutput++ ) {
  			int region0 = labeled.data[indexLabeled];
  			int region1 = labeled.data[indexLabeled+1];
  
  			if( region0 != region1 ) {
  				output.data[indexOutput] = 1;
  				output.data[indexOutput+1] = 1;
  			}
  		}
  	}