Вверх ↑
Этот топик читают: Гость
Ответов: 963
Рейтинг: 12
#46: 2017-08-02 13:13:58 ЛС | профиль | цитата
И так "Супер Зум" вернулся !




Несильно лучше чем было в версии на ХайАсме
Пытался, кстати "поднять" старую версию вправив ей мозги но УВЫ ... оказалось проще переписать с нуля ... хотя теперь можно будет сделать "Реинженериг" обратно в ХайАсм "Основной код" преобразования занимает несколько строк ...

Type
RG=Record R,G,B : byte; end;
Arr=Array [0..1] of RG;
...
//LI[] - Список кадров
// SQ корень квадратный из количества кадров (которое фиксировано привязано к квадратичному ряду ... )
SQ:=trunc(Sqrt(StrToint(Self.ComboBox1.Text)));
B.SetSize(ABS(RR.Right -RR.Left)*SQ,ABS(RR.Bottom -RR.Top)*SQ);//"Размер результата" размер_болка*SQ

for J:=0 to b.Height-1 do begin
for I:=0 to b.Width-1 do
begin
J1:=RR.Top*sq+J;I1:=RR.Left*sq +i;
B1:=TBitmap( LI[(i1 mod sq)+SQ*((J1 mod sq))]);
B.BeginUpdate(False);// это прикол LCL в ХайАсме с его Кол не нужен
Arr(b.ScanLine[J]^)[I]:=Arr(b1.ScanLine[J1 div sq]^)[i1 div sq];
B.EndUpdate(False);// тоже самое "только для LCL "
end;
//...
end;
//"Вот и вся недолга" !

Да чуть не забыл ...
Собственно новая версия "Подзорной трубы" Truba_DS_0_0058.7z

Продолжение следует !

Редактировалось 6 раз(а), последний 2017-08-30 01:32:17
карма: 0

0
Ответов: 963
Рейтинг: 12
#47: 2017-08-30 01:20:45 ЛС | профиль | цитата
"Сон продолжает продолжатся !"

Truba_DS_0_0058_3
1 Победил мерцание "как класс" ... (Refresh гадость ! По возможности не используйте его ! )
2 Чуть поправил масштабирование и "видоискатель" в главном окне ...
3 Добрался до более осмысленного использования цифровых фильтров в SuperZoome


Truba_DS_0_0058_4.
1 Галка FRob Тест фильтра Робертса (В окне "Супер зум" /только просмотр / ) ...

Truba_DS_0_0058_5.

2 Управляемый порог для фильтра Робертcа [Движок под кнопкой "Захват кадров" ]
3 Галка MF Чистка мусора для фильтра Робертcа.

Truba_DS_0_0058_6.

Галка "FSob" Фильтр Собела
Галка "+" Сложение с картинкой

Truba_DS_0_0058_7.

Галка "FCanny" Фильтр Канни (Движок задает уровень "каннизации")
Галка "СRGB" фильтр Канни "in Color"
(Дополнительно в режиме "FCanny" работает галка "+"
все прочиее игнорируется )

Truba_DS_0_0059_0.7z

1 Новое окно "Слежение за объектами" .
2 Управление такое же как в окне "Супер зум"(Доступны все фильтры кроме "FCanny" )
3 Подключен огрызок работы с OpenCV из lkdemo.exe (Кнопки "r, c, n" работают также как в lkdemo )
(Захват кадров свой ! Конверсию в формат OpenCV нужно доработать но уже сейчас для первого подключения все работает как минимум "на хорошо" )
4 Мышкой можно ставить точки слежения .
5 Галка "Line" добавляет линии между точками
6 Галка "BW" убирает цвет

Truba_DS_0_0059_1

Добавил упрощение по разрешению ... и свой собственный метод фильтрации (ага типа Собел Канни Робертс и... я )
Называется "упрощение по цвету"...

Truba_DS_0_0059_2

Вернул "FCanny" в окно "Слежение за объектами"
(В упрощенном по разрешению варианте тормоза не столь критичны )
Добавил целую кучу эффектов в модуль "UCanny" (На будущее )
Поправил кучу глюков (коряво с точки зрения эффективности но теперь программа хотя бы не вылетает)...
Теперь можно совмещать почти все эффекты одновременно.

Truba_DS_0_0059_3
Добавил склетизацитю Зонга-Суня

Робертс + Зонг




Truba_DS_0_0059_4.
Добавлена смена источника кадров (Экспериментальная функция ! )
Превращает программу в некое подобие браузера картинок .
Водите URL картинки выводимой удалённой веб-камерой (jpg,bmp...)
...и работаете также как и с локальной камерой !

Truba_DS_0_0059_5 ...
Профиксил основные баги .




Truba_DS_0_0059_5.7z(Основная сборка для не официальной "транковой" версии Лазаруса 1.7 бинарники+DLL+исходники )
L1_6_Sor_truba_0_059_05.7z
(А это исходники для базовой версии Лазарус 1.б)

Редактировалось 1 раз(а), последний 2017-08-30 01:35:49
карма: 0

0
Ответов: 963
Рейтинг: 12
#48: 2017-09-18 23:47:53 ЛС | профиль | цитата
За это время я неплохо продвинулся ....

Truba_DS_0_0059_6.
Исправил ввод URL (Теперь для подтверждения нужно нажимать Ок или Энтер )
Дополнительные фильтры изображения
Порог бинаризации + (Пока кривовато и тормозит ! )
Emboss+ (Лучший результат слежения при уменьшении разрешения ! )

Truba_DS_0_0059_7.
Добавил возможность использовать нестандартный порт.
(Проблему решила мелкая модификация исходного текста библиотеки Синапс )
Исправил ввод URL (При отсутствии связи выдается сообщение и происходит сброс текущей URL)



Truba_DS_0_0059_8



В окно "слежении за объектами" добавил Галку MBlur и движок управления к ней ...

Что это такое догадаться несложно обычный motion blur или "Темпоральный след " .
Я заметил что даже в полностью неподвижном кадре после поисков контуров картинка слишком "плывет".
ТС по идее должен "собирать статистику" делая неподвижное изображение более неподвижным .


Truba_DS_0_0059_9
Обнаружил и прикрутил к программе некую "не известной породы" Бинаризацию
Пока лучший результат из всех опробованных фильтров !
(Фильтр Канни красив но почти бесполезен применяя "Скелетизацию" нужно еще долго возится вникая в ее возможности и тд )

Но применяя новую Бинаризацию вместе с "заслуженным гасителем звезд" MBlur и Emboss уже почти можно "грабить корованы" !

Правда неясно что ставится на входе (первый числовой параметр явно нижний порог(правда тоже "хитрый" ) а вот второй как-то связан с "радиусом адаптивности" но что это такое на самом деле не вполне понятно )

+Включил ранее опробованный поиск линий и контуров на базе OpenCv.
(Галки FContur и FLine) как и все OpenCv отдает неким гм... хаосом что-ли?
Скрины

Кто не понял разъясняю :
Скрин 1 тут без всяких контурных фильтров изображение доведено до уровня
когда можно применять "поиск контуров" из моего старого проекта (Разумеется оптимизировав процесс )



Скрин 2 Поиск контуров через OpenCV (Как использовать результат пока не очень ясно )


Скрин 3 Поиск линий через OpenCV ( каша еще та но вы не вдели что было после фильтрации по Канни ... )




Truba_DS_0_0059_10.7z
Скрины



Тут поймал идущий процесс поиска (видна иконка- индикатор )


Тут добавлен мой пока не очень точный метод поиска контуров .


Для сравнения тоже изображение с рекурсивным поиском ...

Truba_DS_0_0059_10.
Короче, в муках прикрутил аж два своих метода распознавания контуров (не путать с контурными фильтрами ) ..
И сподобился даже многопоточность к этому делу присобачить..

Truba_DS_0_0059_11_5.

Изменения? мдя.. Проще сказать, что не изменилось!
Ну ладно кратко ...
1 Главное добавил полуавтоматический режим поиска контуров ... (Галка "FRR" ).
2 Вращение работает быстрее но все равно тормоз ! (Для ручного режима (поиск контуров кнопкой RR) более мнение )
3 Куча новых настроек в "Панели распознавания метки"
4 Режим наблюдения .(полезен для подкручивания порогов распознавания )

В общем, все постепенно упростился, а пока 'жуткие навороты'...


Truba_DS_0_0059_12.7z





"Понедельник начался вовремя..."
Сегодня "работа над ошибками" и
Панель создания метки (галка Создание метки)
(Перед использованием включайте Порог Бинаризации!)
На панели кнопки сохранения и прямого использования, метки для поиска.
+ галка "Режим захвата метки"(включив которую, можно мышкой прямо из текущего кадра выбрать нужный блок изображения.)

Редактировалось 4 раз(а), последний 2017-09-19 00:13:18
карма: 0

0
Ответов: 963
Рейтинг: 12
#49: 2017-12-11 17:30:26 ЛС | профиль | цитата
Давно не писал сюда , а между тем проект развивается ...

Свежая сборка !
Truba_DS_0_0059_12_9.7z

Truba_DS_0_0059_12_6. (02.10.2017)
Много поточность на марше ...

(Видно что программа по разному загружает первое и второе ядро процессора
+ четко видно момент включения второго потока (начало графика ))



Truba_DS_0_0059_12_8

Добавлена "Панель баркодов"




Видно "смешение технологий"
Aztec коды ищет одним способом
а "черную звезду" другим... (самодельный поиск произвольной метки )



Поиск AzTec меток и чтение кода на базе библиотеки OMarks(C) 2013. IntBuSoft. http://intbusoft.com

"Глобальный поиск меток на основе Aztec кода"
Кнопка "Сканировать"
Режим "Auto"

Найденный код "замирает" до ручного или автоматического обновления (так и задумано).

Truba_DS_0_0059_12_9



Добавил:
"Локальный поиск Aztec кода в найденных контурах"
Кнопку "Сброс"
И галку "Наблюдать процесс" для "Локального поиска" (Теперь она работает)
=================
Чтобы задействовать "Локальный поиск" нужно как минимум включить "Порог бинаризации" и "FRR"(поиск контуров)
(Включать "Чистый кадр" тоже полезно, так как с ним поиск всегда идет на исходном кадре но, разумеется, нет возможности попробовать разные фильтры)
К сожалению, в режиме Auto при наличии в поле зрения нескольких меток может глючить (библиотека подключена не вполне стабильно...)
Зато теперь читает ВСЕ найденные коды ...
(Правда чувствительность распознавания чуть ухудшена. но это почти всегда лечится "траурной" рамкой вокруг метки )

Зы
Дополнительно: перспективы использования "подзорной трубы" и ей подобных программ в создании дополненной/смешанной/расширенной реальности с помощью смартфона, "VR-гарнитур" и общедоступного ПО...

После долгого и нудного подбора программного обеспечения мне удалось добиться :

1 Чтения изображения с камеры смартфона ( DroidCam http://www.dev47apps.com/)

2 Создания "виртуальной камеры" на планшете ( через DroidCam Client )
( как качать с официального сайта напрямую не понял однако нашел обход
http://soft.mydiv.net/win/files-DroidCam.html (как говорится "на свой страх и риск" но вроде ативирус молчит... ) )

3 Обработки изображения на планшете (в моей программе Truba_DS_0_0059_12_7)

4 ...и вывода обработанного изображения на экране сарматфона.
(TrinusVR с поддержкой псевдо-стерео режима для "водолазной маски" VR гарнитуры )

Для чего вся эта докука ? Все просто, теперь можно попробовать сделать "допиленную реальность "(ДР) боле приближенную к настоящей
(причем все это " программное безумнее" работает без проводов !)

А вот и скриншот ... (умучился пока делал, но без иллюстрации понять о чем речь трудно. )


Справа видно экран смартфона через VNC ( повернутый на 90 градусов ) то есть то что видно в маску "стереоскопа "...
Вверху панель TrinusVR ...
Левее DroidCam Client...
+ видно что в первом окне "подзорной трубы " есть выбор дополнительных камер и весь это "ужос" крутится на планшет к которому по HDMI подключен монитор .

Редактировалось 13 раз(а), последний 2017-12-12 00:14:49
карма: 0

0
Ответов: 963
Рейтинг: 12
#50: 2018-02-24 18:20:13 ЛС | профиль | цитата
И так по случаю 100-летия Красной армии !!

"Миксер для реальности "


Truba_DS_0_0059_13_0 (06.02.2018) Втроник
Добавлена галка "OpenCV AR Test"

К ней я подключил и частично адаптировал пример simplAR
Ищет "шахматку" из chessboard 6x5.jpg (можно распечатать, нарисовать от руки или показать камере прямо на экране ) и "наклеивает" на нее ярлык из pic.jpg
(С пересчетом искажения проекции, поворота и масштаба )
Все это работает почти в риал тайм. Почему почти ? Потому что довольно заметно притормаживает.
Но есть идее по оптимизации . (Например сбросить разрешение при поиске а картинку "клеить" в высоком разрешении )
==========================================
Можно сказать, что половина дела сделана ...
Но метка chessboard 6x5.jpg увы фиксированная + нет перехода к 3D моделям.
(Можно сделать окно в "локальный 3д" но это все же не то )
Нет поддержки нескольких меток ("Допилить" поиск в несколько проходов можно но будет тормоз )...
Ярлык получается полупрозрачный (почему не понял, хотя догадки есть)
Скрин...

Нарисовал реальную метку-шахматку (и хотя кривовато вышло но со сглаживаем по Гаусу работает )



Truba_DS_0_0059_13_1
Добавил галку "AR Draw"
(Работает совместно с "OpenCV AR Test" )
При включении "AR Draw" Вместо ярлыка из pic.jpg выводится динамическая картинка.
(текущий кадр в ч/б режиме + вращается 3д каркас куба... да да это все та-же древняя демка, но за то все очень просто! )
Главная задача этой сборки, посмотреть можно ли использовать в примере simplAR динамическую графику вместо статической картинки .

! Плоховато работает с рисованными на бумаге и вообще с "реальными" метками.
( плюнул и использовал для тестов планшет в качестве "электронной бумаги" - результат весьма радует! )

Скрины...


Окно в "параллельный мир "...


Ну и "ярлык" тоже показывает.... (причем без всякой "прозрачности" )




Truba_DS_0_0059_13_2

Truba_DS_0_0059_13_2 (23.2.2018) Пятница

Галка "3d model"
(Работает в трех режимах)
1 3d Демка (по умолчанию)
2 Показ загруженной модели (после выбора файла или «в режиме отладки» )
3 Демка или модель внутри пространства метки. (при включении " AR Test" и "AR Draw")
(Движок от фильтра МBlur приближает или удаляет модель )
Двойной клик на поле вода имени модели загружает и парсит модель в "режиме отладки" (появляется окошко лога)
Да это еще не "3D-привязка" к метке, но нужно же заранее подумать, что именно будет привязываться.
Модели загружаются в текстовом формате старого 3DS (файлы *.asc ) используется только геометрия + в файле должна быть только одна модель .
За загрузку и вывод модели отвечает новый модуль load3e.pas
ЗЫ
Специально для forum.hiasm.com
Загрузку модели взял из проекта на ХайАсм asc_demo13e.zip тема ( Очередная попытка разобратся с OpenGL )
Еще раз спасибо всем кто мне с ним помог !

Скрины







.

Редактировалось 11 раз(а), последний 2018-02-24 18:51:13
карма: 0

0
Ответов: 963
Рейтинг: 12
#51: 2018-06-04 13:06:25 ЛС | профиль | цитата
Лето пришло !
А "Лаборатория безумного недоучки" снова радует новыми экспериментами !
OpenGl пока к основной программе "Цифровая оптика" "Подзорная труба" не подключил но как видно на этих скринах ...



"Скрины... "







...ждать осталось недолго !

В самой программе добавил:
привязку произвольного рисунка ...
"Скрин..."





...и 3д-модели...
"Скрин..."




...к метке (Все та-же "шахматка" 6Х4 только теперь клееная а не "виртуальная" )

Плюс мой "коронный номер":
"Скрин..."


эффект "Кадр в кадре"...


На закуску самый свежий эксперимент !





Дополнительный скрин



"Детектор руки" - распознавание правда пока не очень надежно но эксперименты продолжаются!


А вот собственно сам экспериментальный пакет (готовая программа+исходники+библиотеки).

Truba_DS_0_0059_13_6 (2.06.2018)
Truba_DS_0_0059_13_6.7z

Добро пожаловать, в мой мир цифровых экспериментов !
.

Редактировалось 13 раз(а), последний 2018-06-04 14:36:32
карма: 0

0
Ответов: 4612
Рейтинг: 746
#52: 2018-06-04 13:23:38 ЛС | профиль | цитата
Там wicked интересуется OpenCV и распознаванием лиц на камере - может, найдете общие интересы.
карма: 26

0
Ответов: 963
Рейтинг: 12
#53: 2018-06-04 13:41:00 ЛС | профиль | цитата
Netspirit писал(а):
Там wicked интересуется OpenCV и распознаванием лиц на камере - может, найдете общие интересы.

О интересно ! Можешь(если не влом) кинуть ссылку на тему ?
карма: 0

0
Ответов: 4612
Рейтинг: 746
#54: 2018-06-04 14:00:54 ЛС | профиль | цитата
Он в "Личке" интересуется Может, сам сюда зайдет.
карма: 26

0
Ответов: 963
Рейтинг: 12
#55: 2018-06-04 14:07:22 ЛС | профиль | цитата
Netspirit писал(а):
Он в "Личке" интересуется Может, сам сюда зайдет.

Ясно, направляй его в эту тему (Буду почаще сюда заглядывать)
карма: 0

0
Ответов: 5
Рейтинг: 0
#56: 2018-06-09 12:46:34 ЛС | профиль | цитата
AlexKir писал(а):
Netspirit писал(а):
Ясно, направляй его в эту тему (Буду почаще сюда заглядывать)

Привет, направил сюда, Netspirit. Почитал твою тему, очень интересно. Под рукой сейчас не на чем посмотреть твои наработки, но на взгляд проще, чем то что нужно мне. В общем тонну информации по OpenCV прочитал, даже собрал программу которая распознает лица на Python, но суть в том, что основной проект уже написан на Hiasm и там уйма работы проделано, а распознавание лица нужно в нагрузку добавить к проекту, вот и встала необходимость, так сказать собрать OpenCV компонентом в Hiasm.
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#57: 2018-06-09 15:16:01 ЛС | профиль | цитата
http://forum.hiasm.com/post/274669
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 963
Рейтинг: 12
#58: 2018-06-11 13:46:08 ЛС | профиль | цитата
wicked писал(а):
AlexKir писал(а):
Netspirit писал(а):
Ясно, направляй его в эту тему (Буду почаще сюда заглядывать)

Привет, направил сюда, Netspirit. Почитал твою тему, очень интересно. Под рукой сейчас не на чем посмотреть твои наработки, но на взгляд проще, чем то что нужно мне. В общем тонну информации по OpenCV прочитал, даже собрал программу которая распознает лица на Python, но суть в том, что основной проект уже написан на Hiasm и там уйма работы проделано, а распознавание лица нужно в нагрузку добавить к проекту, вот и встала необходимость, так сказать собрать OpenCV компонентом в Hiasm.


1 По сути собственно "разработок" пока нет . Что есть ? Некий "лабораторный стенд" где все под рукой но в общей куче .

1.1 Захват потока кадров с камеры у меня чуть сложнее(хотя думаю можно лишние вычистить) но на удивление надежнее чем чистый OpenCV.

1.2 Проект изначально "не заточен" под OpenCV. Это и плюс (есть много своего точнее собранного с мира по нитке функционала причем часть доступных методов обработки изображения пока нигде не используются ) и минус в на пример виде потери скорости на трансляцию в формат OpenCV и обратно.

1.3 Можно сказать что проект изначально начат под HiAsm однако потом переехал на Лазарус ( как раз из за необходимости надежного захвата видео на Windows 10 )

1.4 Позже проект впитал в себя смежный проект "Дополнение к реальности "



...и вот тут то необходимость попробовать "на зуб" OpenCV встала во весь рост .

1.5 Все что касается OpenCV можно довольно легко выдрать из моей "подзорной трубы" (ага не иначе как известного космического пирата капитана Хралока ) и использовать отдельно (возможно даже без особых проблем в прямо в ХайАсм подключив OpenCV.Pas и взяв код из ПТ как основу для ИК блоков.)

2 Кстати я недавно нашел в Сети распознавание лиц на дельфи...

https://sourceforge.net/projects/delphi-opencv-face-detection/files/

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

3 Я тут предлагал сделать пакет OpenCV для ХайАсм (http://forum.hiasm.com/topic/66620) может займемся вместе ?
(Уровень понимания OpenCV у меня не много подрос так что можно попытаться )

Редактировалось 9 раз(а), последний 2018-06-12 13:09:22
карма: 0

0
Ответов: 5
Рейтинг: 0
#59: 2018-06-15 04:09:48 ЛС | профиль | цитата
AlexKir, если у тебя есть уже готовый OpenCV для делфи в виде заголовочного файла, можно попросить умельцев перенести в виде компонента для HiAsm, т.к. у меня нету знаний ни в делфи, ни в создании компонентов для HiAsm (
карма: 0

0
Ответов: 963
Рейтинг: 12
#60: 2018-06-17 02:17:22 ЛС | профиль | цитата
wicked писал(а):
AlexKir, если у тебя есть уже готовый OpenCV для делфи в виде заголовочного файла, можно попросить умельцев перенести в виде компонента для HiAsm, т.к. у меня нету знаний ни в делфи, ни в создании компонентов для HiAsm (

1 Есть (и для fpc тоже пойдет ) правда на старые версии 2.ХХ OpenCV.
2 Дельфи к ХайАсм особого отношения не имеет (как и моя программа написанная в среде разработки Lazarus/FPC )..
3 Блин! По ссылкам вообще никто ничего не качает? Там же полные исходники + полный набор библиотек + свежая сборка бинарнивов...
4 Дело не в компонентах вполне можно ИнлайнКод или ВиртуалИнлайн использовать . просто нужно решить что нужно от OpenCV в каком виде и именно для ХайАсм
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)