Normalmente uso GIMP para eso --- esto probablemente necesita ser refinado para procedimientos automáticos. Mi procedimiento es el siguiente:
Cargo la imagen, en este caso http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-expensive-all-of-them/paseo_15sep_more_rosse.jpg
Ahora copio la capa de fondo y transformo la nueva capa a escala de grises.
Aplico edge-detect por diferencia de gaussian:
jugando con los parámetros para tener un área agradable definida. Aplicar el filtro
- Ahora aplica un umbral a la imagen:
... y este es un mapa de su nitidez (la cantidad de nitidez que decida en el paso anterior estableciendo los parámetros para los filtros).
- Ahora puede utilizar las "herramientas de selección por color", hacer clic en el negro y luego aumentar un poco la selección:
... una vez que esté satisfecho, puede guardar la selección en un canal.
Tenga en cuenta que la selección no incluye las áreas afiladas que están uniformemente coloreadas, sin bordes. No conozco ninguna forma de hacerlo automáticamente (¿es posible?); pero puedes copiar el canal a una nueva capa y
- edite manualmente la capa para llenar las áreas afiladas con negro:
... y repita el procedimiento de selección por color para crear una nueva máscara.