How to detect color alterations in before/after picture of a painting?

Hi, I’m coding an app to check if a painting has been damaged using two high resolution pictures taken before and after it’s shipping.

I have already managed to detect physical alterations (scratches, holes,…).

I know need to check if there is any color alterations: has the painting colors been globally or locally altered. Is there a way to detect such colors changes between the before and after pictures with opencv ?

My app is coded in c# so any answer using would be great but if you only know the answer in python it will be ok too.

so you want to dive into color science?


Obvioisly, you need to shoot both paintings in similas lighting, similar camera settings etc., and colour calibrated either during shooting or afterwards - with the help of a calibration color chart / strip in the photos.

After that, one of the geometrically similar images can be deduced from the other and the other way around, and then you can detect non-zero (allowing some tolerance) areas and areas with funny textures. This done for HSV channels. Dome preparation may depend on the style of the paintings and accuracy on the captures.