Автоматически маскировать не сфокусированную часть изображения

9

Для исследовательского проекта было бы удобно получить только сфокусированную часть изображения. Кто-нибудь знает какое-нибудь программное обеспечение, которое может сделать это? Я знаю, что в следующей версии (через несколько недель) Photoshop CC будет что-то подобное, но есть ли другие варианты?

LaurensP
источник
К вашему сведению, ваше использование «get» здесь очень неоднозначно. Что вы подразумеваете под «получить только эту часть» изображения? Вы имеете в виду, что это единственные пиксели, которые вы хотите оставить в файле? Или вы просто хотите определить эту область для какого-то анализа или как? «Выбрать» было бы более подходящим термином, «маскировать» или даже «идентифицировать»
Жасмин
Если у вас есть более одного изображения (то есть, похоже на наложение фокуса, но без фактического наложения), я бы получил ответ, который дал бы вам фокусные маски.
Унапьедра
Хороший вопрос @ Жасмин. У меня есть ветви куста в фокусе на фоне деревьев / кустарников (установка синей клавиши не вариант), поэтому, чтобы уменьшить ошибку, я хочу ограничить анализ ветвями. Это можно сделать с помощью маскировки или с помощью уменьшенного файла, содержащего только пиксели в фокусе.
LaurensP
@Unapiedra, впервые слышу о фокусировке. Как этот метод или производная дадут мне маску в фокусе? У меня будет несколько снимков в день в течение месяца, фиксированный кадр и фокусное расстояние.
LaurensP
@ LaurensP: Это не поможет в этом случае. Я сильно подозреваю, что ваш вопрос здесь неправильный: это вопрос программирования, и его следует перенести в StackOverflow. Вы также можете расширить свой вопрос, чтобы сказать, что вы на самом деле хотите сделать / проанализировать / и т.д. До сих пор вы показали, что вы хотите проанализировать ветви куста, как и почему вы не сказали. Может быть, кластеризация и сегментация это вариант? Пожалуйста, загрузите образец изображения, пока вы на нем.
Унапьедра

Ответы:

5

Я обычно использую GIMP для этого --- это, вероятно, должно быть уточнено для автоматических процедур. Моя процедура заключается в следующем:

  1. Я загружаю изображение, в этом случае http://rlog.rgtti.com/wp-content/uploads/2013/01/10/macro-lenses-are-exорого-all-of-them/paseo_15sep_more_rosse.jpg

  2. Теперь я копирую фоновый слой и преобразую новый слой в градации серого.

  3. Я применяю функцию обнаружения края по разности гауссов:

введите описание изображения здесь

играя с параметрами, чтобы определить хорошую область. Применить фильтр

  1. Теперь вы применяете порог к изображению:

введите описание изображения здесь

... и это карта вашей резкости (насколько резкой вы решили на предыдущем шаге установить параметры для фильтров).

  1. Теперь вы можете использовать «инструменты выбора по цвету», нажать на черный цвет, а затем немного увеличить выделение:

введите описание изображения здесь

... как только вы будете удовлетворены, вы можете сохранить выбор на канал.

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

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

введите описание изображения здесь

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

Rmano
источник
Это даст вам текстурированные области (с краями). Вы используете выращивание умно, но результат не идеален. Посмотрите на внутреннюю сторону листа с левой стороны. Он находится в фокусе, но не полностью черный в маске. Я думаю, что это на самом деле невозможно решить, так как невозможно различить расфокусировку и отсутствие текстуры.
Унапьедра
0

В Hugin вы можете использовать инструмент, который это делает. Это называется enfuse.

Проблема : он работает только на нескольких изображениях.

Здесь вы можете найти руководство по использованию enfuse для фокусировки. Вы можете получить маски (что вы хотите) с помощью --save-masks.

enfuse --exposure-weight=0 --saturation-weight=0 --contrast-weight=1 \
       --hard-mask --save-masks --output=base.tif INPUTImage*.tif

Тем не менее, обратите внимание, что хотя это и автоматизировано, основной подход такой же, как и у ответа Рмано: обнаружение большого локального контраста. Более подробное объяснение смотрите в разделе « Обнаружение локального контраста» и «Сложная фокусировка» в документации Enfuse.

Unapiedra
источник
-5

Adobe Photoshop CC сделает это после 18 июня. Вот ссылка на функцию предварительного просмотра

Р Холл
источник
5
Вопрос специально задает другие варианты, кроме Photoshop :-)
Филипп Кендалл
Первоначально не было
R Hall
1
Это никогда не редактировалось.
Джон Каван
Ну что ж. Давай продолжим голосование, я думаю. мы в -4 сейчас. Кто-то еще?
Р Холл