2
Ed_EmЯ так вообще впервые слышу о такой задаче... :) Изолинии это что? Связные кривые, вдоль которых интенсивность пикселей постоянна?
Цитата:
в случае резких градиентов интенсивности изображения некоторые изолинии получаются разорванными
Почему они (изолинии) должны быть непрерывными без наложения дополнительных условий на изображение?
Вообще, изолиний у поля их же континуум. :) Во-первых, подразумевается, что сама интенсивность (не поле, а скаляр, e.g. на промежутке
:) ) с некоторым шагом должна сканироваться, а потом изолинии с одним и тем же уровнем интенсивности как-то должны пространственно разноситься, опять же с шагом (нашли одну, удалили с картинки сумму Минковского этой кривой с небольшим шаром и дальше пошли)...
Вот как, например, должна анализироваться ровно залитая область изображения? Или в ней изолинии не должны детектироваться вовсе?
В общем, как вы понимаете, я вот, к примеру, не то что помочь вам в сшивании фрагментов неких изолиний скорее всего не смогу, так у меня вообще даже в саму постановку исходной задачи никак въехать не получается. :) Совсем беда.
У вас тут две разные задачи -- трассировка изолиний и сшивание фрагментов. Вторая задача действительно наверняка неплохо объезжена в векторных редакторах (оптимизация векторной графики) и в, вероятно родственных вашей задаче, алгоритмах трассировки контуров (не знаю, может быть стоит поискать блочные вариации Кенни-детектора, в которых возможно возникала и решалась задача сшивания кусков контуров).
Интересно было бы попробовать свести композицию фрагментов к задаче их кластеризации на основе какого-нибудь хитрого критерия, базирующегося, скажем, на отношении близости между принадлежащими различным блокам точками пересечения кусков контуров с границей содержащих их блоков.
Думаю, стоит также поиграться с придумыванием своеобразных хэшей фрагментов контуров и основанных на них lookup-таблиц, аккумулирующих сыпящиеся в них фрагменты, так, чтобы потенциально сшиваемые в смысле вышеупомянутого критерия куски автоматически попадали в одну и туже ячейку таблицы...
Первая задача с трассировкой параллелится за счет регулярно-блочной обработки самой растровой картинки, вторая задача -- например, за счет нисходящего рекурсивного подразбиение совокупностей уже векторизованных блоков...
Это так, чистая фантазия. Без понимания условия задачи можно много чего нафантазировать, так что извиняйте...