I am creating an automatic change detection tool in Python for ArcGIS 10.2 using aerial imagery. The tool works but it also detects shadow change. I have been able to create a classified raster of just shadows and tried using raster calculator to eliminate the shadows using the Con statement and subtraction without success. Is there a way to remove shadows from an aerial image or make those areas NoDATA, using the tools in ArcGIS and Python. I read about histogram matching and using a mask to eliminate shadows though I am not sure how to go about doing this.
For satellite imagery this would usually be done using an elevation model and time of capture to calculate which areas are in the shadow of mountains/hilltops etc. These areas could then be adjusted/normalized according to different methods. You can read more about this here:
Some methods also take into account indirect light (reflexes) from surrounding areas. A water body or a glacier could for example give more light to some shaded areas than others:
One way of solving your challenge would be to calculate shadow areas at the time of capture and then use the calculated areas to mask out potential shadow areas. This is done by setting the areas to NoData. The following information might help you to do this: