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

trinka

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

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

  • Посещение

  • Days Won

    1

Все публикации пользователя trinka

  1. Привет! Получил в opencv матрицу гомографии, нужно получить из нее некоторые параметы, например, углы поворота. так же нужно добавить к ней матрицу сдвига. весь инет уже облазил, нигде нет точного описания значений элементов матрицы. прощу дать точный линк!
  2. сейчас работаю с видео 640-480 25фпс. есть возможность заснять пару фоток на высоком разрешении (1280), для того чтобы получить более точную матрицу гомографии. саму матрицу могу полчить(на 1280). как ее следует преобразовать, чтобы она выполняла тоже преобразование, но для низкого разрешения(640)?
  3. предлагаю закрепить тему. как правильно копировать часть изображения? использую Mat. я использую rowRange, colRange, но есть проблема: картинки, полученные таким образом, не всегда хотят отображаться (вывожу на форму clr.net). то есть часть картинок показывается, часть нет (исключение при вызове конструктора Bitmap). пробовал operator() (Rect) - та же фигня. может неправильно так копировать? не забываю перед выводом делать копию картинки(в любом случае это не должно влиять)
  4. кажется я нашел в чем проблема. эх оупнсиви какой-то глючный, во всяком случае нелогичный при использовании rowRange возвращаемый рез-т картинка - просто указатель на подматрицу исходной картинки. об этом сказано в справке. ну ок. при этом матрица становится "непоследовательной". т.е. ф-ия isContinuous() возвращает 0. вот тут то и глючит вывод на форму. для bitmap нужно посл-ную картинку. даже после копирования картинки вот так imageToHomography = imageToHomography.rowRange(fitoffset.y, fitoffset.y+fitoffset.height-1); imageToHomography непоследовательный. (хотя выглядит как нормальное копирование). решается примерно так imageToHomography = localimage.rowRange(fitoffset.y, fitoffset.y+fitoffset.height-1).clone(); сейчас вроде бы не глючит. надеюсь я и правда нашел этот баг, а не то даже не знаю как это еще можно лечить))
  5. а что, выравнивать еще надо? сегодня попробую.
  6. при чем тут перерисовка то? bitmap не создается, до перерисовки еще далеко)
  7. imageToHomography = imageToHomography.rowRange(fitoffset.y, fitoffset.y+fitoffset.height-1); imageToHomography = imageToHomography.colRange(fitoffset.x, fitoffset.x+fitoffset.width-1);//если убрать эти 2 строки, все работает //параметры корректные this->VidArea->Height = image->rows;//VidArea это pictureBox this->VidArea->Width = image->cols; try { Bitmap^ b = gcnew Bitmap(image->cols, image->rows, image->step, PixelFormat::Format24bppRgb, IntPtr(image->data));//здесь бывает исключение this->VidArea->Image = b; }
  8. нет, я копирую, я написал, проблема не в этом. когда данные передаются в конструктор битмапа, он уже сам копирует, так что даже не знаю где может быть проблема
  9. Работа с камерами

    чоткий совет, сработало, спасибо) мне показалось, что днем работало нормально потому, что яркость достаточна. вечером изображение всегда плохое, нужно подкручивать вручную(видео тормозит при плохом освещении). и вот как то тут и глючит. кстати как избавиться от тормозов при плохом освещении?
  10. да в другом косяк был, забыл делать сглаживание
  11. кто знает какой параметр преобразования использовать в ф-ии Image ^img = gcnew Bitmap(frame.cols, frame.rows, frame.step, PixelFormat::Format24bppRgb, IntPtr(frame.data)); а именно PixelFormat для CV_8U? пробовал PixelFormat::Format8bppIndexed, но израбоажение какое-то испорченное, но в принципе показывается. может его нужно как-то преобразовать?
  12. Работа с камерами

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

    да не, это и на с++ тоже.
  14. Работа с камерами

    такая трабла: запускаю первый раз эту программу(ниже), все нормально. перезапускаю-видео тормозит(около 5к/с). чтобы все было опять нормально, запускаю vmcap(шла на диске с дровами), там меняю разрешение(на максиамльное, если на любое другое-не сработает), отключаю ее. теперь моя программа 1 раз поработает без тормозов. потом нужно опять повторять итерацию. это пример работы с opencv. как это лечится??? подчеркнутая строка - которая жрет много времени на втором этапе. глюк и на debug, и на релизе(пишу в vs2010), opencv 2.3.1
  15. Работа с контурами

    по задаче пол является одноцветным. нужно выделить всю плоскость пола. для компьютера это понятное дело не определить никак. оценивает человек. дело в другом. я опытным путем подобрал параметры для изображений, но они работают не для всех изображений: если слишком темно/светло сегмент пола определяется неверно. для "средних" по яркости, контрастности алгоритм отрабатывает хорошо. и я понимаю, что комп всегда может ошибиться, в программе будет возможность пользователю "подкрутить ползунок". нужно грубо говоря "автовыравнивание яркости". что-то вроде. может быть не только яркости.
  16. Работа с контурами

    нужно согласовать параметры meanshift с парамтерами картинки так, чтобы сегментация выполнилась качественно за 1 раз . если не получается, что-то поменять, и за 2-3 уж точно. т.е. все картинки приводить к каким-то параметрам яркости, контрастности и уже для них подобрать параметры meanshift. эквализация делает не совсем то, мне кажется.
  17. Работа с контурами

    что-то не понимаю что означают пороги у этой функции? немного поигрался, мне кажется рез-т намного хуже чем у meanshift. в принципе, если уменьшить изображение и применять meanshift, то рез-т неплох, но проблема в другом: у камеры нужно вручную настраивать яркость, контрастность и тд. я это делаю на глаз, и не всегда получается оптимально. т.е. для каждого изображения нужно подбирать параметры для meanshift вручную. а т.к. работает она долго, это может занять слишком много времени. к тому же программа претендует на некоторую самостоятельную работу. но это конечно гораздо круче чем то что я предлагал делать dilate можно ли как-то автоматически подгонять яркость и тд к заданным параметрам?
  18. Работа с контурами

    эта сегментация очень медленная. к тому же на границах появляются много "несегментированных" пикселей. watershed требует предварительных маркеров. возможно нужна предобработка? я делал blur (5). можно ли применить ее на серое изображение? (не получилось)
  19. Работа с контурами

    можно как-нибудь сделать противоположное эквализации: нужно более темные и более светлые участки сделать однотипными. еще: есть ли готовый алгоритм постеризации?
  20. Работа с контурами

    дело в том, что по задаче граница не должна охватывать площади с узким горлышком(положим, 10 пискелей). dilate как раз и объеденяет линии(реально существующие, но не уловленные детектором границ), и объединяет близко расположенные границы(с узким горлышком). в голову приходит только то, что после заливки пола нужно "расширить" эту область в каждой точке границы в направлении вектра нормали к границе в этой точке, на те же 10 пикселей. как можно получить этот вектор? я думаю нужно анализировать несколько соседних точек. но опять: как границу хранить? точками, или линиями(через каждые неск. пикселей проводится прямая) самое обидное окажется, если потом будут частные случаи, которые мой алгоритм портит. пока в голову таких не приходит, но блин так часто бывает( как вариант, использовать findcontours, и там все просто. позже попробую
  21. Работа с контурами

    интересует лишь то что реализовано в opencv, либо самые простейшие алгоритмы
  22. Работа с контурами

    при применении детектора границ Кении не всегда выделаются все границы (рис1). тогда я решил использовать dilate в несколько итераций(рис2) как видно, пол определился относительно нормально. теперь нужно применить erode так, чтобы изменения, привнесенные dilate, были устранены: линии стали тоньше. но erode не дает нужного эффекта(рис3). мне нужно чтобы после erode оставалась линия толщиной минимум в 1 пиксель. тогда все будет камильфо. что же делать? возможно есть другие подходы?
  23. Обрезка изображения

    Изначально есть изображение, по которому делаю гомографию. После этого получается изображение в виде четырехугольника, вокруг которого черный цвет. Если делать эквализацию, то она же "подумает" что на картинке много черного, и сработает неверно. как быть?
  24. Обрезка изображения

    изображение не в виде чертыхегольника уже
  25. Обрезка изображения

    у эквализации как раз нету. есть идея заюзать исходник функции и добавить маску самостоятельно, похоже это единственный вариант
×