Is there any better measurement of error between two images than just taking pixel value differences?
The problem I am tackling is stitching images containing "sensitive" objects, such as moving people. Here are two images I would like to blend:
I compute error map using inter-pixel differences:
The image is then considered a graph where pixels are nodes and edges are connecting neighboring pixels. Edge weights are differences between pixels taken from the error map.
Any Max-Flow/Min-Cut algorithm will find an optimal seam which goes through minimum error path (minimum cut - highlighted in red):
As you can see, the seam have successfully avoided girl's hand, but still goes through the guy's face.
The problem is in the error map which assigns too low error for his face as he just moved his head and the pixel differences of his skin are smaller than ripples on water and other less important features.
I heard about saliency map, but not sure if it is the right approach.