Detecting changes across two images I am trying to calculate the change in pixels across two images. 
Visually looking at them, there seem to be too many changes but calculating the distance between pixels gives me around about the same percent change values.

I am trying to calculate the distance here by adding the squared differences for each pixel and its square root which gives me the distance of value at rgb level for each pixel. i.e how much has the pixel value changed (sqrt((img1.r - img2.r)**2+(img1.g - img2.g)**2+(img1.b - img2.b)**2).

Then I am trying to check how many such pixels have changed by a threshold of 10.

I am not able to figure out, why does it show about the same difference in any two pair of images. 

Is there a problem in the program or have I been thinking incorrectly

import pylab,skimage
import imageio,math,numpy as np


img1 = imageio.imread("029.jpg")
img2 = imageio.imread("028.jpg")
img3 = imageio.imread("030.jpg")
wh = img1.shape[0]*img1.shape[1]
squared_diff = ((img1 - img2)**2)
squared_diff1 = ((img3 - img2)**2)
squared_diff2 = ((img1 - img3)**2)
print float((np.sqrt(squared_diff[:,:,0] + squared_diff[:,:,1] + squared_diff[:,:,2])&gt;10).sum())/wh*100
print float((np.sqrt(squared_diff1[:,:,0] + squared_diff1[:,:,1] + squared_diff1[:,:,2])&gt;10).sum())/wh*100
print float((np.sqrt(squared_diff2[:,:,0] + squared_diff2[:,:,1] + squared_diff2[:,:,2])&gt;10).sum())/wh*100


Output :

45.2615017361
46.1771918403
46.2858072917


For higher thresholds like 20 it gives 0 . np.max gives max distance as 15.x  everytime.

Is there any other way to find a feature like number of pixel changed with a threshold?

Any help is appreciated.
The value of :

img1 = imageio.imread(".jpg")


are rgb value ? i mean are they ranged between 0-255 or between 0 and 1. 
Cause if they where all between 0 and 1 then:

((img1 - img2)**2)


will have always value below 10 indeed the maximum value of this operations could be only 1 and therefore the maximum value obtained here :

np.sqrt(squared_diff[:,:,0] + squared_diff[:,:,1] + squared_diff[:,:,2])


could be np.sqrt(3) and that's always minor than 10 and ">10" operator will return an array with all False values