The problem
I have a collection of digital photos of a mountain in Japan. However the mountain is often obscured by clouds or fog.
What techniques can I use to detect that the mountain is visible in the image? I am currently using Perl with the Imager module, but open to alternatives.
All the images are taken from the exact same position - these are some samples.
Sample Images http://www.freeimagehosting.net/uploads/7304a6e191.jpg
My naïve solution
I started by taking several horizontal pixel samples of the mountain cone and comparing the brightness values to other samples from the sky. This worked well for differentiating good image 1 and bad image 2.
However in the autumn it snowed and the mountain became brighter than the sky, like image 3, and my simple brightness test started to fail.
Image 4 is an example of an edge case. I would classify this as a good image since some of the mountain is clearly visible.
UPDATE 1
Thank you for the suggestions - I am happy you all vastly over-estimated my competence.
Based on the answers, I have started trying the ImageMagick edge-detect transform, which gives me a much simpler image to analyze.
convert sample.jpg -edge 1 edge.jpg
Edge detected samples http://www.freeimagehosting.net/uploads/caa9018d84.jpg
I assume I should use some kind of masking to get rid of the trees and most of the clouds.
Once I have the masked image, what is the best way to compa