Я обычно использую GIMP для этого --- это, вероятно, должно быть уточнено для автоматических процедур. Моя процедура выглядит следующим образом:
Я загружаю изображение, в этом случае http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-expensive-all-of-them/paseo_15sep_more_rosse.jpg
Теперь я копирую фоновый слой и преобразую новый слой в оттенки серого.
Я применяю функцию обнаружения края по разности гауссов:

игра с параметрами для определения хорошей области. Примените фильтр
- Теперь вы применяете порог к изображению:

... и это карта вашей резкости (насколько резкой вы решили на предыдущем шаге, установив параметры для фильтров).
- Теперь вы можете использовать «инструменты выбора по цвету», щелкнуть по черному, а затем немного увеличить выделение:

... как только вы будете удовлетворены, вы можете сохранить выборку на канал.
Обратите внимание, что выделение не включает острые области, которые окрашены равномерно, без краев. Я не знаю никакого способа сделать это автоматически (возможно ли это?); но вы можете скопировать канал на новый слой и
- вручную отредактируйте слой, чтобы заполнить резкие области черным цветом:

... и повторите процедуру выбора по цвету, чтобы создать новую маску.