Ужосы OpenCV...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Ужосы OpenCV...

Сообщение Alex2013 »

Моя первая условно рабочая демка с применением OpenCV сконвертированная в Лазарус (и доведенная до состояния "вообще-то что-то уже видно " :D ) ....
(Отслеживается движение пейзажа с маркерами или движение меченного объекта ... но глюков пока немерено и набор DLL собран "с мира по нитке"
то есть я думал что они будут вместе с исходниками или бинарникам демок ... ага наивный... хорошо файловая помойка на винте такая обширная, что обнаружились даже условно пригодными DLL от OpenCV (на складе с инфой по нейросетям ... :roll: ) )
:arrow: L_lkdemo_243_01.7z (набор DLL вместе c EXE + исходники демки ...)
Это опухально ! (в смысле пока хоть что-то увидел чуть мозгом не опух... ) :D

ИзображениеИзображение

Народ есть тут кто-то кто реально что-то писал с применением это чудовища от программирования ?
Можете что-то посоветовать ? Как я понял там от версии к версии большие проблемы с обратной совместимостью .
И вообще какая версия самая стабильная ? (Радует кроссплатформенность но чувствую, что под линукссом придется лиха нахлебаться не меньше чем под винду )
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

На официальном форуме эта тема много раз поднималась. Там и биндинги и ссылки на примеры.
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Предлагаю попробовать сделать "невидимую мышку" - то есть определять на картинке положение ладони, отличать кулак от ладони (клик). Это может быть полезно для интерактивного интерфейса на большом экране во всяких публичных местах - кафе, справочная, заказ билетов.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

OpenCV 3.3
что там не понятного? По моему все там просто.. картинка -> фильтры -> подсчет/слежение/сопоставление/анализ/другие функции -> результат.
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

olegy123 писал(а):OpenCV 3.3
что там не понятного? По моему все там просто.. картинка -> фильтры -> подсчет/слежение/сопоставление/анализ/другие функции -> результат.

Aга.... До 3.3 не добрался . Ковыряюсь в основном с этими примерами . ...
http://gidesa.altervista.org/camshiftdemo.php
Но нахлебался всякого .
1 Захват кадров с некоторой вероятностью лишает окон подвижности и изменения размера .
( Это вообще как может быть :?: ... причем кривое мерцание и ошибки с выводом в примере уже того ... прибил...
....без захвата средствами OpenCV все Ок :shock: )
2 При переносе программы на другую машину внезапно хочет msvcp100.dl вот вынь да полож...
3 Какая-то путаница субверсиям самой OpenCV копирую прямо из архива(вчера "с перепуга" выкачал почти все версии "Шоб було !" ) DLL версии 2.31.. и ку! вдруг хочет еще какую-то tbb.dll ... :roll: А рядом в другом каталоге лежат длл с точно таким же названиями все работает ...

Но за два дня ужосов на "демонстрячил" вот что . :idea:
ИзображениеИзображение

"Горит пиктограмма у древнего храма ..." :mrgreen:

ИзображениеИзображение
Вообщем пока не AR но рядом ....

Кто для тех не понял "шутку юмора " объясняю: при не слишком резком движении линии и вершины остаются "привязанными" к объекту. :idea:
Еще непонятно ? По сути это почти "AR без маркеров " ...
Ну или можно найти макркер один раз на статическом кадре (!) а дальше нацепив каркас "вести " его "светлым путем" ...
Плюс видится некий путь к получению "карты глубин" (3д сканирование ! )с одной камеры ... :idea:
Последний раз редактировалось Alex2013 29.12.2017 20:51:57, всего редактировалось 4 раза.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Alex2013 писал(а): В рядом в другом каталоге лежат длл с точно таким же названиями все работает ...


попробуй зарегистрировать dll-ки. Сам посуди, откуда системе знать, что надо брать какую-то там левую библиотеку из несистемного каталога? Одно дело когда она в той же папке откуда загружается прога... другое если она просто есть на компе.
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Ну про то что все нужные длл умнея всегда лежат в папке с ЕХЕ можно и не говорить ... "лучше мегабайт потерять за то за день долететь "

Там другая проблема .... в архивах лежат длл с одинаковыми названиям но нескольких "суб-версий" например V8, V9, V10... (пойди догадайся которая там нужна или лучше ) и одна из них хочет дополнительную ДЛЛ а другие нет ... (Хорошо хоть в супер-паке она тоже есть ... но где-то "черта на рогах" совсем в другом каталоге )
Последний раз редактировалось Alex2013 18.08.2017 13:09:57, всего редактировалось 3 раза.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

А как тогда воспринимать ЭТО?
Alex2013 писал(а):2.31.. и ку! вдруг хочет еще какую-то tbb.dll ... :roll: В рядом в другом каталоге лежат длл с точно таким же названиями все работает ...
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Лекс Айрин писал(а):А как тогда воспринимать ЭТО?
Alex2013 писал(а):2.31.. и ку! вдруг хочет еще какую-то tbb.dll ... :roll: В рядом в другом каталоге лежат длл с точно таким же названиями все работает ...


Выше разъяснил ...
(... извиняюсь, моя вредная привычка дописывать посты опять запутывает "диалоговый режим" :oops: )
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Alex2013, вот чтобы не было "там болит, здесь не болит" и есть регистрация dll, которая, собственно, и показывает где эту библиотеку искать, если она потребуется.
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Лекс Айрин писал(а):Alex2013, вот чтобы не было "там болит, здесь не болит" и есть регистрация dll, которая, собственно, и показывает где эту библиотеку искать, если она потребуется.


Если "художественная инсталляция " в каталоге с EXE собрана все должно работать всегда !
Беда в том что:
Во первых не всегда ясно какие длл(кроме системных ) программа использует .
Во вторых можно ошибиться при соборе "солянки" случайно взяв длл из другой суб-версии (с описными последствиями ).

ЗЫ
Кстати, что за тип Uchar или PUChar ? Заменил на PChar "но мучают меня смутные сомнения"... :idea:

Добавлено спустя 29 минут 32 секунды:
serbod писал(а):Предлагаю попробовать сделать "невидимую мышку" - то есть определять на картинке положение ладони, отличать кулак от ладони (клик). Это может быть полезно для интерактивного интерфейса на большом экране во всяких публичных местах - кафе, справочная, заказ билетов.


Что-то похожее планирую сделать ... но думаю начать с "виртуального стилуса " ... (из серии "обозвал потом подумал" ... ) :lol:
Но не знаю как лучше назвать... гм ... "AR-стилус" что ли ? :roll: Короче должна получится "книжка раскраска для реальности " есть палитра и простой способ включения/включения стилуса(например можно рисовать нажав и удерживая Ctrl на клавиатуре или повернув стилус с прикрепленным маркером на 90-градусов .... или взять старинную слине-зубую гарнитуру и "цикать зубом"... кстати реально прикол получится ... нужно только научится читать события от БТ :D... по идее там просто эмулируются нажатия "медиа кнопок" на клавиатуре ) ...

В перспективе можно делать тоже самое в 3Д (виртуально удлиняя ситилус "в глубину " )... Улавливаете что получится ? Ручной 3д дигитайрзер !
(Та же "инверсия технологии" что и для "3д ручки" ... )
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Alex2013 писал(а):Если "художественная инсталляция " в каталоге с EXE собрана все должно работать всегда !


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

Alex2013 писал(а):Кстати, что за тип Uchar или PUChar ? Заменил на PChar "но мучают меня смутные сомнения"... :idea:


Судя по всему, это unsigned Char (беззнаковый символ) ну и указатель не него... если работает, то все нормально... а не работает... надо искать каким компилятором собрана библиотека и проверять каким типам эти типы соответствуют.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

Alex2013 писал(а):2 При переносе программы на другую машину внезапно хочет msvcp100.dl вот вынь да полож...

Потому что dll-ка хочет эту библиотеку, компилировалась с ней.
Alex2013 писал(а):3 Какая-то путаница субверсиям самой OpenCV копирую прямо из архива(вчера "с перепуга" выкачал почти все версии "Шоб було !" ) DLL версии 2.31.. и ку! вдруг хочет еще какую-то tbb.dll ... :roll: В рядом в другом каталоге лежат длл с точно таким же названиями все работает ...

Process Explorer в помощь
https://technet.microsoft.com/ru-ru/sys ... lorer.aspx

Добавлено спустя 4 минуты:
Лекс Айрин писал(а):Alex2013, вот чтобы не было "там болит, здесь не болит" и есть регистрация dll, которая, собственно, и показывает где эту библиотеку искать, если она потребуется.

Регистрация не всегда хорошо..
Винда сначала ищет dll-ки в папке с exe-шником.. потом ищет по переменной Path, какую первую найдет ту и воткнет.

Добавлено спустя 9 минут 23 секунды:
Alex2013 писал(а):
Лекс Айрин писал(а):Alex2013, вот чтобы не было "там болит, здесь не болит" и есть регистрация dll, которая, собственно, и показывает где эту библиотеку искать, если она потребуется.


Если "художественная инсталляция " в каталоге с EXE собрана все должно работать всегда !
Беда в том что:
Во первых не всегда ясно какие длл(кроме системных ) программа использует .
Во вторых можно ошибиться при соборе "солянки" случайно взяв длл из другой суб-версии (с описными последствиями ).
Process Explorer избавит с проблемами portage. Хотите разрулить проблемы с dll, а с ними могут возникнуть даже из-за версии сервиспака.

Alex2013 писал(а):ЗЫ
Кстати, что за тип Uchar или PUChar ? Заменил на PChar "но мучают меня смутные сомнения"... :idea:
Uchar - переменная, компилятор блюдет тип, не даст допустить ошибку.
PChar/PUChar - тип Pointer, компилятор также блюдет тип, но ему безразница какой тип Pointer в сишную dll-ку заслать, это не его зона ответственности..
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

olegy123 писал(а):Винда сначала ищет dll-ки в папке с exe-шником.. потом ищет по переменной Path, какую первую найдет ту и воткнет.


Это понятно. Но всего шампанского не выпить... Если программ использующих данную библиотеку несколько, то проще все же зарегистрировать, так как наличие нескольких копий dll может быть вполне напряжно. Например, если ставить несколько игр, то можно наткнуться на ситуацию, когда есть несколько одинаковых наборов рунтайм библиотек (5-6 это норма, бывало и до десятка). Сам понимаешь, потом за это не погладят, так как просто так их не удалишь -- неизвестно какой проге они соответствуют.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

Поэтому регистрировать их не нужно.
Если правильно разрулить с path проблем можно вообще с одинаковыми либлами избежать.
Я точно не уверен если одна и та же библиотека уже используется кем то, находится в файловом кэше, что тогда будет точно не знаю.
Ответить