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

граючи з параметрами, щоб мати визначену хорошу область. Застосовуємо фільтр
- Тепер ви застосовуєте поріг до зображення:

... і це карта вашої різкої (наскільки різкою ви вирішите на попередньому кроці встановлення параметрів для фільтрів).
- Тепер ви можете скористатися інструментами "виділити за кольором", натиснути на чорне, а потім трохи збільшити вибір:

... як тільки ви задоволені, ви можете зберегти вибір на каналі.
Зауважте, що підбір не включає гострі ділянки, які однаково забарвлені, без країв. Я не знаю жодного способу зробити це автоматично (це можливо?); але ви можете скопіювати канал на новий шар і
- вручну відредагуйте шар, щоб заповнити гострі ділянки чорним кольором:

... і повторіть процедуру вибору за кольором, щоб створити нову маску.