mrgloom 242 Жалоба Опубликовано March 4, 2011 склеиваются прямоугольные изображения, которые имеют перекрытия, при склейке 2-х или полосок не возникает трудностей, но вот ситуацию показанную на картинке непонятно как решать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 4, 2011 А в чем конкретно заключается проблема? Непонятно как позиционировать приклеиваемое изображение, непонятно как его накладывать на уже созданную картинку, в смысле как смешивать цвет, или может что то другое? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 4, 2011 известно что уже собрана область буквой Г (изображения 1-1 1-2 2-1)и требуется к ней присоединить изображение 2-2, оно перекрывается с 1-1 по диагонали, с 1-2 по вертикали, с 2-1 по горизонтали.перекрытием с изображением с 1-1 можно пренебречь, т.к. оно мало, остается 1-2 и 2-1 и мы получаем смещение от одной пары х1,у1 и от второй х2,у2.(по горизонтали получаем большое значение х1 малое у1, по вертикали наоборот x2 малое y2 большое(на картинке как размер векторов)). я пробовал компенсировать максимум смещения(выбирается максимум малых и по этому направлению производится склейка) -неплохо но не идеально так как ошибка все таки есть я пробовал усреднять х=(х1+х2)\2 у=(у1+у2)\2 - плохой результат еще пробовал сравнивать максимумы корреляции и брать те координаты где корреляция больше. - вроде как плохо(максимум как параметр видимо можно использовать только внутри изображения т.е. максимум на 1 изображении не сравним с максимумом на другом) из этой же серии можно было попробовать использовать максимумы корреляции как весовые коэффициенты для х,у , но думаю тоже не получится. т.е. мне кажется что должно быть какое то нелинейное преобразование или фигуру Г не надо считать целой. сглаживание границ это уже 2 вопрос который будет решаться потом. (кстати тут тоже сразу вопрос как смешивать в целом понятно, а возможно ли определить уровень детализации(или резкости)? т.е. в том куске где происходит перекрытие использовать не линейное сглаживание, а взять и заменить лучшим куском из 2-х) + еще видел какие то работы о выборе кривой по которой производится склейка может это надо тоже учитывать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 4, 2011 Мне кажется, что тут надо взять один холст (расширяемый) и на него приклеивать изображения, тогда процесс должен получиться последовательный, и всегда 2 изображения. На обоих изображениях искать дескрипторы SIFT, например, потом по RANSAC совмещать и склеивать. В этой книжке смотрели про склейку? http://szeliski.org/Book/ там в разделе Draft разные версии книги можно бесплатно скачать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 4, 2011 Ну понятное дело один холст, но как я понял вы предлагаете реализовать так берем 1 клеим с помощью сифта к 2 и их в 1 картинку к этой картинке клеим 3 и т.д. и так все время у нас участвует всего по 2 картинки.так? но тут есть проблемы 1-е изображение все время растет и считать все время для него точки это вычислительно сложно, я хотел бы ограничится только краями с запасом где и происходит перекрытие, но тут может снизится точность(хотя не знаю), которая очень сильно влияет на матрицу гомографии, потом еще у самого сифта если не менять параметры то на одних изображениях найдет мало точек(невозможно или неправильно произвести склейку)(на изображениях где мало деталей), а на другом очень много(причем не там где надо и даже после)(на изображениях где много одинаковых деталей). вообщем сифт и вычислительно сложен и нестабилен. тем более не понятно решит ли это проблему Г области? или преобразования гомографии должны все сделать автоматически? вот небольшое уточнение красными жирными линиями показано направление сшивки 1-1 1-2 и 1-1 2-1, волнистая красная линия показывает то что возможно 1-2 и 2-1 совмещены неидеально, простыми линиями показано какие сифт найдет соответсвия. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 4, 2011 RANSAC не требует точного соответствия, точек, он находит наилучшее приближенное решение (размещение модели в имеющихся данных). вот проект: OpenCv_homo.rar он глючный малость, но картинки выравнивает (преобразованием гомографии с отсеиванием выбросов (outliers)). Может быть будет полезен. PS: работает только релиз, при выходе выкидывает исключение. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах