Перейти к содержимому
Compvision.ru
Кожевников Пётр

Метод Эмпирических мод Гильберта-Хуанга на изображении

Recommended Posts

Здравствуйте, я не так давно начал изучать библиотеку OpenCV... Возникли вопросы в реализации метода Эмпирических мод Гильберта-Хуанга на изображении http://ru.wikipedia.org/wiki/Empirical_Mode_Decomposition:

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

2. После получения двух изображений, к ним необходимо применить сглаживание, возможно бикубическую интерполяцию http://ru.wikipedia.org/wiki/Empirical_Mode_Decomposition.. Писать самому не очень хочется.. К тому же, как я понимаю она будет работать не совсем так как мне нужно. Мне необходимо сделать сглаживание ограниченного количества точек, расположение которых я заведомо не знаю кубическим сплайном так, чтобы после завершения получить картинку , как градиент, с плавным переходом. Может Размытие подойдёт? Но опять же параметры размытия необходимо узнавать, скорее всего как максимальное отклонение локальных экстремумов...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С таким методом (Эмпирических мод Гильберта-Хуанга) пока не сталкивался.

Оптимизировать можно, например так:

1) отсекаем по порогу все точки со значением меньше заданного (можно базируясь на значении дисперсии, скажем значение порога = 2*sigma плюс среднее)

получаются "острова" со значением внутри них не меньше порогового.

2) Находим контуры этих островов. Находим габариты контуров.

3) Принимаем окошко с "островом" как область интереса.

4) Внутри ищем максимум (minMaxLoc).

Тут похожая реализация есть:

http://www.compvision.ru/forum/index.php?showtopic=927&st=0

по поводу интерполяции то здесь посоветовали неплохое решение (посредством триангуляции Делоне):

http://stackoverflow.com/questions/10180084/c-2d-array-non-regular-grid-interpolation

Ставим точки, триангулируем, а дальше интерполяция внутри треугольника:

http://www.arcsynthesis.org/gltut/Illumination/Tut10%20Fragment%20Lighting.html

http://courses.cms.caltech.edu/cs171/barycentric.pdf

Я тоже такую функцию как то хотел найти (аналог матлабовской interp2), не нашел, обошелся без нее. В матлабе есть все исходники, но там столько наворочено, что браться страшно :).

Надо как-нибудь будет соорудить на основе триангуляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Делоне требует много сил по написанию.

Если точек мало и сетка неравномерная, то

http://en.wikipedia.org/wiki/Inverse_distance_weighting

Ничего страшного нет. Идем по новым точкам значение в точке вычисляется как сумма значение опорной точки умноженный на расстояние. После полученная сумма делится на сумму расстояний от всех опорных точек.

Правда скорость будет маленькая.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, этот метод не такой уж медленный,

When combined with fast spatial search structure (like kd-tree) it becomes efficient N*logN interpolation method suitable for large-scale problems.

Что касается параметров, то p=2 наверное оптимальное значение в большинстве случаев и, как я понял задает метрику.

Для p=2 получается Евклидова метрика.

Делоне есть в OpenCV, даже пример есть (delaunay2.cpp), так что ничего выдумывать своего не нужно.

Есть еще очень неплохая библиотечка triangle и ее обертка под C++ triangle++

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подумалось, что неплохо будет написать варп изображения по треугольникам.

т.е. для 1 треугольника были одни координаты, стали другие(и размеры тоже могут менятся), а начинку интерполировали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×