anchor.diff:              (with-image-bounds (height width) img
                  (loop for i below height do
                     (loop for j below width do
  -                     (setf c 0)
  -                     (setf v 255)
  -                     (setf empty nil)
  +                     (setf neighbors 0)
                        (dolist (f (multiple-value-list-remove-nulls (8-neighbors img i j)))
                              (multiple-value-bind (_r _g _b)
                                 (pixel img i j)
  
positive.code: 
  ;; Shorthand function to run the edge detection
  (defun edge (input output)
     (edge-detect (load-painting input) output))
  
  (defun e ()
     (load 'fa.lisp)
     ;(edge "images/odetojoy.png" "output/odetojoy_edge.png")
     (edge "images/the_scream.png" "output/scream_edge.png")
     ;(edge "images/starry_night.png" "output/starry_night_edge.png")
     )
  
negative.code:    (format t "Edge thinning (long process)~%")
     (edge-thin img)
  
     (format t "overlaying image~%")
     (overlay img org)
     ;(format t "labelling ~%")
     ;(setf img (colourise-components img))
     (format t "K-means clustering~%")
     (format t "~S" (k-means-cluster-image-pixels org 3))
  
     (format t "Writing to file~%")
     (write-image org output)) ; output the image for now
  
  ;; Shorthand function to run the noise estimation
  (defun noise (input output)
  