title: in Python, how to detect changes to stationary objects between two RGB images, 2nd image possibly slightly shifted
body: <p>How can Python detect changes in stationary objects between two images, where 2nd image may be slightly shifted and have slightly difference lighting?</p>
  
  <p>Python needs to periodically compare the latest RGB image from a USB camera to a reference file image, from same camera, and detect a change in the collection of objects in the field of view?  (Change meaning:  object position changed, object removed, or another object added to field of view.)</p>
  
  <p>Python must ignore if camera or objects have shifted an insignificant number of pixels in the x or y, and ignore changes in lighting brightness/luminosity.</p>
  
  <p>BACKGROUND:
  I have an ELP USB camera board that is mounted 2-feet above a flat surface that contains a few stationary objects.  Camera aims down at surface and objects.</p>
  
  <p>First, Python takes a reference snapshot of the surface and initial objects, and stores to file.
  Later, Python needs to periodically take a snapshot of surface and objects and check for significant difference with reference; to check if any objects have been moved, or removed, or if a different object has been added.</p>
  
  <p>Frame may sometimes have mechanical vibration that causes objects, or camera, to be slightly shifted, causing present snapshot to be slightly pixel shifted.
  Python must ignore these minor shifts in x or y pixel location.</p>
  
  <p>Lighting may vary slightly.</p>