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

Frimen

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

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

  • Посещение

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


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

    Может быть есть ещё какиенибуть характеристики по которым можно посчитать направление кнтура относительно зарание заданого ?


  2. Можно ли повысить точность вычсления угла рассматривая по мимо центрального пикселя, на изображениях distX и distY, соседнии пиксели от центра ? Возможно ли построить качественный дескриптор дающий пограешность хотябы до 5 градусов при вычислении угла ?

    Можно еще фильтры Габора использовать. Хотя, ядро там не такое маленькое.

    У меня картинка размером 20 на 20 пикселей. Если ядро слишком большое то я думаю не имеет смысла.


  3. mrgloom сопоставление изображений по особым точкам строится на вычислении инвариантного дискриптора особой точки. Инвариантный дискриптор как раз и представляет собой нахождение направления (тоесть угла) вектора градиента локальной области.

    В моём случае какраз и анализируются области особых точек (я их уже нашёл). Я рассматриваю изображение размером 20 на 20 пикселей. Мне необходимо взять центр изображения (в котором какраз и находится особая точка) и найти какраз этот самый угол. Поэтому неплохо было бы вернится к моему изначальному вопросу по поводу нахождения угла наклона вектора градиента.


  4. тогда задача еще сложнее.

    у вас есть первое неповёрнутое изображение? или хотя бы неповёрнутый образ того что вы ищете на втором изображении?

    Да есть. Я же написал в первом посте

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

    Необходимо определять его угол и вращением возвращать в исходное состояние.


  5. А затем обращаться к центральному пикселю изображений distX и distY и находить арктангенс отношения значений пикселей distY на distX ?

    не понял.

    а вообще cvCanny + HoughLines

    или более продвинутые алгоритмы

    На сколько я понимаю это следует из определения нахождения угла по вектору градиента.

    А по поводу cvCanny + HoughLines - на сколько это будет эффективно с точки зрения производительности. И тем более на мой взгляд было бы проще найти градиент чем выделять контур более сложным алгоритмом, а потом ещё и преобразование находить.


  6. Вопрос вызван моим недопониманием как работает cvSobel.

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

    Необходимо определять его угол и вращением возвращать в исходное состояние.

    Вопрос заключается в следующем:

    Будет ли правильно если я буду определять угол наклона объекта вычисляя

    cvSobel(image, dstX, 1, 0, 3); - нахождение градиента по X

    cvSobel(image, dstY, 0, 1, 3); - нахождение градиента по Y

    А затем обращаться к центральному пикселю изображений distX и distY и находить арктангенс отношения значений пикселей distY на distX ?

    Вопрос вызван тем что мне не очень понятно что какое конкретно значении записывается в изображение dist при вычислении градиента в направлении оси x, y и в случае если мы передаём функции cvSobel 1 по обоим осям.

    Также может быть ктонибуть подскажет ещё какойнибуть способ определение угла на который повёрнут объект на изображении.


  7. Проблема в том, что углы на досках маленького размера по сравнению с размером изображения не всегда находятся полностью. В связи с чем тупо перебором не определишь является ли это доска или просто скопление угловых точек.

    Да и к тому же границу доски мне тоже необходимо знать.


  8. Кто нибудь может подсказать какие нибудь статьи по распознаванию и трекингу шахматных досок.

    Мне необходимо найти шахматную доску на объекте в видео потоке.

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


  9. Даже на небольшом наборе точек можно построить очень большое количество контуров (см. хотя-бы http://en.wikipedia....alesman_problem). Нужны хотя-бы какие-то критерии определения соседних точек.

    Дело в том, что в данном случа контур формируется как эквипотенциальная поверхность и все точки массива входят в этот контур, но они не упорядоченные. Мне необходимо вырезать всю эквипотенциальную поверхность с изображения, но так как точки поверхности не упорядоченные, то функция cvDrawContours закрашивает контур, выходя за его граници, ореентируясь по максимальным и минимальным точкам контура.


  10. Если контур выпуклый, то cvConvexHull даст нужный эффект, если нет, то все сложнее. А связи точек заданы?

    Нет. В массиве просто хранятся точки в произвольном порядке.

    Вообщем то контур в большенстве случаев выпуклый, но не сключино, что может сформироватся такой контур, который не будет являтся выпуклым.


  11. Всем привет.

    Возникла такая задача:

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

    В OpenCV есть методы, которые позволяют это сделать быстро ?


  12. Вообщем решил проблему с macro( SET_SWIG_JAVA_PACKAGE package_name )- это оказалось определение функции SET_SWIG_JAVA_PACKAGE с параметром package_name.

    Перенёс код функции в то место где она используется и вроде cmake сгенерировал файлы.

    Теперь проблема вознкла при вызове самого make. make енерирует объектники, но неможет их слинковать в конкретную библиотеку. Пишет:

    [root@icdkuser build]# make

    Linking CXX shared module ../../libs/x86/libandroid-opencv.so

    CMakeFiles/android-opencv.dir/gl_code.cpp.o: In function `__static_initialization_and_destruction_0(int, int)':

    gl_code.cpp:(.text+0xec3): undefined reference to `__dso_handle'

    CMakeFiles/android-opencv.dir/image_pool.cpp.o: In function `__static_initialization_and_destruction_0(int, int)':

    image_pool.cpp:(.text+0x91b): undefined reference to `__dso_handle'

    /home/icdkuser/Documents/Android/development/android-ndk-r6/sources/cxx-stl/gnu-libstdc++/libs/x86/libstdc++.a(system_error.o): In function `__static_initialization_and_destruction_0':

    /tmp/ndk-digit/src/build/../gcc/gcc-4.4.3/libstdc++-v3/src/system_error.cc:65: undefined reference to `__dso_handle'

    /home/icdkuser/Documents/Android/development/android-ndk-r6/sources/cxx-stl/gnu-libstdc++/libs/x86/libstdc++.a(eh_globals.o): In function `__static_initialization_and_destruction_0':

    /tmp/ndk-digit/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_globals.cc:118: undefined reference to `__dso_handle'

    collect2: ld returned 1 exit status

    make[2]: *** [../libs/x86/libandroid-opencv.so] Error 1

    make[1]: *** [jni/CMakeFiles/android-opencv.dir/all] Error 2

    make: *** [all] Error 2

    Из за чего он может не линковаться ? Библиотеки вроде все на месте.


  13. Да компилировал так как написанно в документации, за одним лиш исключением, что в билд скрипте поменял пути на пути к тулчейну под x86.

    Я немогу найти нигде чё делает функция macro, которая используется в билд скрипте сmake ?


  14. В скрипте используется только в одном месте

    #convenience macro for swig java packages

    macro( SET_SWIG_JAVA_PACKAGE package_name )

    string( REGEX REPLACE "[.]" "/" package_name_output ${package_name} )

    set( CMAKE_SWIG_OUTDIR ${SWIG_OUTPUT_ROOT}/${package_name_output} )

    set( CMAKE_SWIG_FLAGS "-package" "\"${package_name}\"" )

    endmacro()


  15. ообщем переписал билдовы скрипт для make под x86. Вроде собралось.

    Теперь вознкла новая проблема. (Помойму она возникает даже при сборке под arm)

    После сборки самой библиотеки надо собрать ещё какието вспомогательные библиотеки, которые необходимы для сборки opencv риложений под android.

    При запуске скрипта выдаёт следующую ошибку:

    [root@icdkuser android-opencv]# ./cmake_android.sh

    -- CMAKE_CXX_FLAGS for x86 --sysroot=/home/icdkuser/Documents/Android/development/android-ndk-r6/platforms/android-9/arch-x86 -fPIC -DANDROID -Wno-psabi -fsigned-char

    -- CMAKE_C_FLAGS for x86 --sysroot=/home/icdkuser/Documents/Android/development/android-ndk-r6/platforms/android-9/arch-x86 -fPIC -DANDROID -Wno-psabi -fsigned-char

    -- tool ok --sysroot=/home/icdkuser/Documents/Android/development/android-ndk-r6/platforms/android-9/arch-x86 -fPIC -DANDROID -Wno-psabi -fsigned-char

    CMake Error at jni/CMakeLists.txt:38 (INCLUDE):

    include called with wrong number of arguments. Include only takes one

    file.

    CMake Error at jni/CMakeLists.txt:43 (SET_SWIG_JAVA_PACKAGE):

    Unknown CMake command "SET_SWIG_JAVA_PACKAGE".

    -- Configuring incomplete, errors occurred!


  16. Если у вас нет аппарата с ARMv7, то устанавливаем переменную ARM_TARGET=«armeabi».

    mrgloom Я полагаю здесь имеется ввиду, что библиотека будет собираться просто под ARM.

    Мне надо собрать OpenCV под таблетку с архитектурой x86.


  17. Всем привет.

    Столкнулся с такой проблемой

    Необходимо собрать OpenCV на Android с архитектурой x86.

    Нашёл неплохую статью по сборке OpenCV под Android. http://recog.ru/blog/opencv/14.html

    Только там не написано как его собрать под x86.

    Может быть кто нибудь подскажет как в конфигурационных файлах поменять архитектуру ?


  18. Хочу попробовать использовать GStrimer в OpenCV для видео захвата с камеры мобильного устройства nokia n810. OpenCV вроде поддерживает GStrimer. Может кто знает как его можно использовать в OpenCV ? А то я что то не нашёл нормальной документации по этому вопросу! Если есть у кого простейший пример осуществляющий видео захват при помощи GStrimer и OpenCV вылажте пожалуйста.


  19. Стандартных нет.

    В инете под заголовком handTracking нашел классификатор:

    Прикрепленный файл handtracking.rar ( 54,86 килобайт ) Кол-во скачиваний: 0

    но пока не проверял (не знаю, что он ищет smile.gif ).

    Проверил на нескольких картинках

    похоже что данный классификатор ищет пальцы рук.

×