code: def draw_line(labels,pt0,pt1,value=1):
      
      y0,x0 = pt0
      y1,x1 = pt1
      diff_y = abs(y1-y0)
      diff_x = abs(x1-x0)
      x = x0
      y = y0
      labels[y,x]=value
      step_x = (x1 > x0 and 1) or -1
      step_y = (y1 > y0 and 1) or -1
      if diff_y > diff_x:
          # Y varies fastest, do x before y
          remainder = diff_x*2 - diff_y
          while y != y1:
              if remainder >= 0:
                  x += step_x
                  remainder -= diff_y*2
              y += step_y
              remainder += diff_x*2
              labels[y,x] = value
      else:
          remainder = diff_y*2 - diff_x
          while x != x1:
              if remainder >= 0:
                  y += step_y
                  remainder -= diff_x*2
              x += step_x
              remainder += diff_y*2
              labels[y,x] = value
docs: Draw a line between two points
      
      pt0, pt1 are in i,j format which is the reverse of x,y format
      Uses the Bresenham algorithm
      Some code transcribed from http://www.cs.unc.edu/~mcmillan/comp136/Lecture6/Lines.html