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

olkin

Пользователи
  • Количество публикаций

    24
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем olkin


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


  2. А я перекрутила Безье по Вашей ссылке, там всё хорошо) сам сплайн строится мгновенно, а вот скорость блюра зависит от длины кривой, количества точек аппроксимации, шага свертки... Ну и качество пропорционально времени выходит. Повторю на всякий: свертку сделать двухмерную, потом размножить картинку н раз (по длине третьей координаты), каждый раз увеличивая и кропая. И потом еще раз произвести свертку, но уже по финальных картинках?


  3. Это самый рациональный способ? Если я правильно поняла, время рассчета задачи увеличивается катастрофически (по сплайну и так получается около 40 секунд, за что меня все время пинают)


  4. Здравствуйте опять:) Сделала по сплайну, всё красиво, краевой исправила "на коленке" - дорисовала копимейкбордером и после применения свертки - кропнула)) задача теперь новая - добавить третью координату. То есть, фактически, при z>0 картинка "едет" на нас (увеличивается на каждом шаге свертки), в обратную - уменьшается. Вопрос опять таки в алгоритме. После каждого шага свертки увеличивить\уменьшать картинку? Или существует некий Vec4f?


  5. Литература? С преобразований Фурье начинала, но для начала было слишком сложно разобраться, забросила. Может и правда, так как сейчас кривую надо параметризировать, пускать точку уже не по вектору, а по кривой


  6. Размывает не хуже чем в фотошопе, я сравнивала:) Рамка только. Походу, потому что

    if(p.y+(float)i*v[1]>0 && p.y+(float)i*v[1]<src.rows && p.x+(float)i*v[0]>0 && p.x+(float)i*v[0]<src.cols)

    вектор упирается в край, и там тормозит. Только, чего оно черным стало - фиг знает

    ну да да. но леньки ж)


  7. Тестила на белой картинке с черный контуром квадрата в центре - оно наглядней всего. Верхний и правый края стали черно-белым градиентом четко по ширине вектора. Ну может и мой косяк, код-то не дословно слизан:)

    copyMakeBorder - читала где-то, спасибо за подсказку, я тоже ленивый чел;)

    Хех, мне до распаралеливания еще..)


  8. Делюсь впечатлениями)

    Во первых, лучше никому не знать, какого года, оказывается, у меня была установлена версия OpenCV)) и насколько в 2.4.2 всё сразу легче пошло. Во вторых, огромное спасибо за код. Собственно, вот этот фрагмент

    if(p.y+(float)i*v[1]>0 && p.y+(float)i*v[1]<src.rows && p.x+(float)i*v[0]>0 && p.x+(float)i*v[0]<src.cols)
    
                    {
    
                            sum+=k*src.at<Vec3f>(p.y+(float)i*v[1],p.x+(float)i*v[0]);

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

    ...А строит картинку оно у меня секунд 40, кстати. Но дело еще может быть в слабом рабочем ноуте.

    На очереди сплайны, сгладить ломанную и пустить свертку уже по кривой:)


  9. Да и так изображение строит секунд 10, сдвигая достаточно слабо. К тому же, съедает часть цветов, всё не могу добиться идентично к фотошоповскому эффекту


  10. ну да, через IplImage* . Кстати, при спадающем коэффициенте интенсивность размытия не регулируется, точнее, увеличить не выходит - при очень малых значений коэффициента след просто не видно


  11. С цветами справилась, просто поставила ограничение, что если сумма больше 255, то присвоить 255. выглядит красиво:) и коэффициент ввела, всё ок. Остался вопрос про вертикаль, работаю


  12. Доброе утро:) Продолжая творческие поиски: докопалась как пройтись по всем пикселям, складывая канналы ргб с соседями. Пока сдвигаю по оси Х на некоторую величину, похоже на правду. Штука вот в чем: во первых, суммируя значение ргб, оно, похоже, береться по модулю 255, тоесть, если я к белому цвету что-то добавляю - он перепрыгивает в начало значений, и выходят все цвета радуги. Та же штука с остальными цветами - сдвиг картинки происходит, но цвета убиваются. И второе - проходка по пикселях работает только с иксом, сдвинуть по вертикали не удалось


  13. Уточню момент, поправьте, что не так поняла.

    Пользователь рисует кривую, разбиваем её на вектора, для каждого пишем ядро свёртки, а потом все эти ядра помещаем в виде миноров в одну большую матрицу свёртки? Или это не в ту степь?


  14. Не запутал, спасибо:) По этой теме уже несколько дней много читаю, так что, все слова знакомые:) беда в том, что по запросу моушн блюр выдает в большинстве либо мануал по пользованию фотошопом, либо ре-блюринг - убрать этот эффект как оптическую ошибку. А так, чтоб доступно, но ближе к научному изложению, объяснить алгоритм свёртки в этом фильтре - очень очень мало. В статьях по работе с коэффициентами ядра глаза вообще в кучку сходятся, я функан люблю, конечно, но уже успешно подзабыла. Спасибо на этом, буду сейчас освежать свой английский:)


  15. Здравствуйте. Моя задача состоит в том, чтоб реализовать эффект motion blur по любой заданной пользователем траектории. Вопрос следующий - как задавать ядро свёртки? Пока получается криво даже для вектора 45 градусов. Возможно, посоветуете какую-то литературу, как работать с коеффициентами ядра?

×