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