Я пытаюсь разработать алгоритм фокусировки изображения для некоторой работы по автоматизации тестирования. Я выбрал использовать AForge.net, так как это выглядит как хорошая зрелая .net-дружественная система.расчет фокуса изображения
К сожалению, я не могу найти информацию о построении алгоритмов автофокусировки с нуля, поэтому я дал ему мой лучший попробовать:
тейк изображение. примените фильтр обнаружения края привязки, который генерирует контур кромочного оттенка. генерировать гистограмму и сохранять стандартный dev. переместите камеру на один шаг ближе к теме и сделайте другое изображение. если стандартный разработчик меньше предыдущего, мы все больше фокусируемся. в противном случае мы прошли оптимальное расстояние для съемки.
есть ли лучший способ?
обновление: ОГРОМНАЯ ошибка в этом, между прочим. поскольку я получаю минутой оптимальной точкой фокусировки, мое значение «изображение в фокусе» продолжает расти. вы ожидаете, что функция параболического типа будет смотреть на расстояние/фокус-значение, но на самом деле вы получаете что-то более логарифмическое.
обновление 2: хорошо, поэтому я вернулся к этому, и текущий метод, который мы изучаем, учитывая несколько известных ребер (хорошо, поэтому я точно знаю, что представляют собой объекты на картинке), я сравниваю интенсивность ручного сравнения пикселей. поскольку полученный граф становится более крутым, я получаю больше внимания. Я отправлю код после того, как основной алгоритм портируется из matlab в C# (да, matlab ..: S)
обновление 3: окончательное обновление yay. снова вернулся к этому. окончательный код выглядит следующим образом:
шаг 1: получить изображение из списка изображений (я взял сто фотографии через сфокусированную точку)
шаг 2: найти край для объекта я фокусировка (В моем случае это прямоугольный объект, который всегда находится в одном и том же месте, поэтому я обрезаю прямоугольник HIGH и NARROW одного края).
Шаг 3: получить HorizontalIntensityStatistics (класс Aforge.net) для этого обрезанного изображения.
шаг 4: получить гистограмму (серую, в моем случае)
шага 5: найти производные значения гистограммы
шаг 6: если ваш склон является самым большим, когда вам в самом сосредоточенном пункте.
Я думаю, что вы, по крайней мере, на правильном пути. Если я правильно помню автофокус в цифровых камерах, сделайте что-то подобное. –
Я понял, что прошлой ночью, когда я на самом деле играл с камерой, которая делает AF. тот, на работе, по сути, является тупым отверстием. Когда AF задействован, вы обычно слышите жужжание. это камера, снимающая сэмплы на разных расстояниях и угадывающие лучшее расстояние. –