Исследовательский проект "Цифровая оптика" .

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

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

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 08.09.2019 16:05:51

"Две в одном" ... (Две сборки в одном посте )

Truba_DS_0_0059_14_2_9_Тест (29.08.2019) Четверг

"Построим IMAX своими силами!"
Окно "Цифровые эффекты"
"cvStereoTest" первая попытка работать с "картой глубин".
Часть задуманного функционала не работает.
Зато самую тормозную процедуру успешно упрятал в отдельный поток.
(Тормозит, как прежде, но теперь хоть интерфейсом можно пользоваться)
ИзображениеИзображение

Truba_DS_0_0059_14_2_9M (8.09.2019) Воскресенье
"Не можешь сделать быстро? - делай правильно!"
Окно "Цифровые эффекты"
"cvLkDemo" поиск характерных точек (упрятал в фильтр). +
"cvStereoTest" не реализованные задумки спрятал до лучших времен -
Сильно модифицировал инспектор данных. +
(Добавил окно навигации (работает по клику) и возможность перемещать элементы
по списку и удалять произвольный элемент) "Муа-ха-ха!" (угу.. после бессонной ночи "безумный смех" получается ну очень аутентично… ) я всё-же седлал это! ...после того как пришлось в ручную редактировать записи... я внезапно понял что что-то в этом процессе СИЛЬНО НЕ ТАК... с трех попыток все завертелось но как там говорил некий Конеко " Мы многого достигли, так выпьем же за то, чтобы больше нам такого(и главное таким образом) достигать не приходилось…" )

Вообщем мой некогда совсем уж "рыбный инспектор данных" шаг за шагом постепенно теряет свой непредаваемый "запах свежей рыбы" и начинает умеренно радовать реальной работой и разными мелкими удобствами…
ИзображениеИзображение
ИзображениеИзображение


:arrow: Truba_DS_0_0059_14_2_9M_Bin.7z :idea:
:arrow: Truba_DS_0_0059_14_2_9M_SRC.7z :idea:
Последний раз редактировалось Alex2013 18.10.2019 16:57:21, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 23.09.2019 06:49:46

Truba_DS_0_0059_14_2_9M5 (23.09.2019) Понедельник
"Рутина твой друг!"
Окно "Цифровые эффекты"
Продолжил модифицировать инспектор данных. +
("Зациклил" перемещение элемента по окну навигации)
Добавил два "служебных фильтра":
'Фрейм из файла'
(с возможностью отключать обновление)
и 'Фрейм в файл'
(с настройкой задержки и записи в номерованные файлы)
P.S.
В принципе сборка была готова уже неделю назад
(и я думал что она останется "внутренней сборкой" потому что изменений не особо много и они действительно рутинные ) но вчера обнаружил и исправил одну но важную для использования программы "Truba_DS" совместно с WMR-шлемом ошибку .
Кроме того записан экспериментальный набор фильтров для получения нормальной стереопары wmr041.ex1
посмотреть на результат его работы и попробовать сделать лучше можно используя записи кадров WMR01.jpg WMR02.jpg

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

:arrow: Truba_DS_0_0059_14_2_9M5_Bin.7z :idea:
:arrow: Truba_DS_0_0059_14_2_9M5_SRC.7z :idea:
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 29.09.2019 13:32:47

Снова анонс !
ИзображениеИзображение
В давно давно в далекой далекой галактике бушевал... Лазарус ! :idea: :D :D :D
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Pavia » 30.09.2019 22:46:45

Хорошо. Главное двигаться в нужном направление. Я вот тоже по немного двигаюсь.

А что-бы не скучать сделал алгоритм поворота изображения на произвольный угол.
:arrow: https://yadi.sk/d/Tftd8yqUUorTfA

Пока всё упирается в НС и деревья решений. И пока их не сделаешь никуда и не двинешься. Нужен отточенный алгоритм. А для этого нужно много экспериментов.

А что-бы ставить ставить эксперименты нужно проделать кучу рутинной работы.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 227
Зарегистрирован: 07.01.2011 12:46:51

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 01.10.2019 12:22:55

Угу... Главное не сдаваться после того как проходит "шапкозакидательское настроение " ! :wink:
Для экспериментов нужна "экспериментальная база", которую я и пытаюсь сейчас сделать.
ИМХО нужно отойти от "штучных опытов" или просто нагромождения эффектов (как это сделано у меня в окне "слежение за объектами" ) и сделать удобную среду где можно свободно импровизировать "без единого гвоздя" (то бишь без вмешательства в базовый код )
Следующий этап (после переноса всего что я нагородил в окне "слежение за объектами" и рядом ) внедрение простейшей логики,скриптов,подключаемых плагинов и наконец генерация кода для "приложений прикладного уровня " (В стиле упрощенного "ХайАсма без схем" ) .
Зы
За программу отдельное спасибо! Кстати у меня "честный" поворот все время получался с "дырявым ситом в нагрузку" и я конце концов плюнул и использую SetWorldTransform из WinApi . (Кстати я забыл но его можно и вместо cvWarpPerspective использовать )
SetWorldTransform вообще забавная штука она ничего не рисует и не поворачивает а просто изменяет геометрию "канвас пространства". :idea:
Код: Выделить всё
Const
msimg32lib = 'msimg32.dll';
user32lib = 'user32.dll';
shell32lib = 'shell32.dll';
gdi32lib = 'gdi32.dll';
comctl32lib = 'comctl32.dll';

function SetGraphicsMode(hdc: HDC; iMode: Integer): Integer;stdcall;
       external gdi32lib name 'SetGraphicsMode';
//function GetWorldTransform(DC: HDC; var p2: TXForm): BOOL; stdcall;
//         external gdi32lib name 'GetWorldTransform';

function SetWorldTransform(DC: HDC; const p2: TXForm): BOOL; stdcall;
external gdi32lib name 'SetWorldTransform';
function ModifyWorldTransform(DC: HDC; const p2: TXForm; p3: DWORD): BOOL; stdcall;
external gdi32lib name 'ModifyWorldTransform';
// Пересчет размера для поворота

Procedure GetRSize (degree,W,H: integer; Var topoverh, leftoverh,X,Y: integer);
Var
   cosA, sinA: real;

Begin
    cosA := cos(degree*Pi/180);
    sinA := sin(degree*Pi/180);
    while degree >= 360 do degree := degree - 360;
    while degree < 0 do degree := degree + 360;

    if (degree <= 90) then
      begin
        topoverh  := 0;
        y := Round(W * sinA + H * cosA);
        leftoverh := Round(- H * sinA);
        x := Round(W * cosA) + Abs(leftoverh);
      end
      else if (degree <= 180) then
      begin
        topoverh  := Round(H * cosA);
        y := Round(W * sinA) + Abs(topoverh);
        leftoverh := Round(W * cosA - H * sinA);
        x := Abs(leftoverh);
      end
      else if (degree <= 270) then
      begin
        topoverh  := Round(W * sinA + H * cosA);
        y := Abs(topoverh);
        leftoverh := Round(W * cosA);
        x := Round(- H * sinA) + Abs(leftoverh);
      end
      else
      begin
        topoverh  := Round(W * sinA);
        y := Round(H * cosA) + Abs(topoverh);
        leftoverh := 0;
        x := Round(W * cosA - H * sinA) + Abs(leftoverh);
      end;

end;
//Поворот картинки
procedure DrawRotatedBitmap(Bitmap: TBitmap; Dest: TCanvas; X_, Y_: Integer;
   degree,topoverh, leftoverh: Integer);
var
     Matrix: TXForm;
     Angle: Extended;
     x, y, H, W: integer;
begin
    H := Bitmap.Height;
    W := Bitmap.Width;
    Angle:= degree*Pi/180;
  while degree >= 360 do degree := degree - 360;
  while degree < 0 do degree := degree + 360;

   // Разрешаем аффинные преобразования
   SetGraphicsMode(Dest.Handle, GM_ADVANCED);
   // Устанавливаем матрицу для смещения на (X, Y)
   Matrix.eM11 := 1;
   Matrix.eM12 := 0;
   Matrix.eM21 := 0;
   Matrix.eM22 := 1;
   Matrix.eDx := X_;
   Matrix.eDy := Y_;
   SetWorldTransform(Dest.Handle, Matrix);
  // Устанавливаем матрицу поворота
   Matrix.eM11 := Cos(Angle);
   Matrix.eM12 := Sin(Angle);
   Matrix.eM21 := -Sin(Angle);
   Matrix.eM22 := Cos(Angle);
   Matrix.eDx := -leftoverh;
   Matrix.eDy := -topoverh;;
   ModifyWorldTransform(Dest.Handle, Matrix, MWT_LEFTMULTIPLY);
   // Выводим изображение
   Dest.Draw(0, 0, Bitmap);
   // Восстанавливаем систему координат
   ModifyWorldTransform(Dest.Handle, Matrix, MWT_IDENTITY);
   SetGraphicsMode(Dest.Handle, GM_COMPATIBLE);
end;

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

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 06.10.2019 13:11:21

Truba_DS_0_0059_14_2_9M6 (06.10.2019) Воскресенье
"В далекой далекой галактике..."
ИзображениеИзображение

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

Окно "Цифровые эффекты" дополнение
cvWarpPerspective + (вписывает кадр в произвольный четырехугольник )
и мелкое дополнение:
+ "Точку в Клипборд" (через всплывающие по правой кнопке мыши меню)
+Кнопка "Дубль" (дублирует элемент обоймы фильтров)

Truba_DS_0_0059_14_2_9M6_SRC.7z
Truba_DS_0_0059_14_2_9M6_Bin.7z
Ссылки на забагованную сборку убрал .
Ps
Новый скрин слепил на скорую руку из под древнего Wine и старого линукса
(Увы пока все технологично, мрачно и даже без лихо вращающихся котиков как в примере Pavia :) )
К тому-же cvWarpPerspective из под Wine не работает но скоро сделаю новые скрины которые надеюсь будут немного поинтереснее .

Ps Ps
Обнаружил баги при удалении "крестиком " при работе под вин 10... Сейчас правлю (Причем в "семерке" все вроде было тихо... )
Последний раз редактировалось Alex2013 08.10.2019 12:31:00, всего редактировалось 2 раз(а).
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 08.10.2019 10:16:10

Срочный Фикс !
Truba_DS_0_0059_14_2_9M6Fix (06.10.2019) Вторник
Экстренный фикс (Все не исправил и где-то еще есть изредко всплывающие "странности" но в основном работает)
+ Полная матрица для cvWarpPerspective и более удобный для копирования из "захвата координат" формат данных [xx,yy]
ИзображениеИзображение

:arrow: Truba_DS_0_0059_14_2_9M6Fix_SRC.7z :idea:
:arrow: Truba_DS_0_0059_14_2_9M6Fix_Bin.7z :idea:
Последний раз редактировалось Alex2013 18.10.2019 16:58:37, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 10.10.2019 13:13:40

"Вести с полей!"
:arrow: wmr041_M_Wp3_Mirror.ex1 :idea:
Что это? Это запись очередного эксперимента...(Загружается в окне "цифровые эффекты")
Что делает ? Почти тоже самое что показано на предыдущем скрине - пытаюсь избавить стереопару от искажений.
Но на это раз цепочка не включает поворот картинки .
ИзображениеИзображение
Сохранить кадр
cvWarpPerspective (сразу "с места в карьер"! )
Сохранить кадр
Восстановить кадр
Зеркало (Тут мне стало лень подбирать параметры "матрицы трансформации"(МТ) и я недолго думая "отзеркалил" кадр.. )
cvWarpPerspective (...вызвал "дубль-гангера" с копией предущей МТ .. )
Зеркало (и "отзеркалил" обратно ... но вообще разумеется "Зеркало" тут полностью лишнее )
Сохранить кадр
Кадр в окне
Кадр в окне

Зы
Что бы попробовать повторить и улучшить мой "загадочный эксперимент" нужно:
1 Запустив програму включить альтернативный источинк кадров (галка "Сменить источник кадров ")
2 Вбить в поле URL "псевдо браузера" путь к файлу WMR02.jpg из текущей сборки (прога вполне поймет и "укороченный " путь типа (H:..\WMR02.jpg) но в начале обязательно нужна "буква диска" и ":" )
3 Введя путь не забыть кликнуть Ок или нажать Enter..
4 Дальше нужно кликнуть кнопку "Цифровые эффекты" и в открывшемся окне нажать кнопку ">>"
5 А дальше просто загрузить свеже-скаченный wmr041_M_Wp3_Mirror.ex1
6 и для запуска включит галку "Пуск фильтрации" .

Что еще ? А ! Вот что! Параметры cvWarpPerspective пока незащищены от ввода лишних символов так что избегайте букв и пробелов.
Зы Зы
Посмотрел в шлеме ... Мда "какие планы выдерживают столкновение с реальностью?!" Видимо никакие, даже если реальность виртуальная ... :wink:
Старая тормозная версия с "поворотом" и значительно менее четкой картинкой wmr041_M_Wp2.ex1 все еще впереди в плане "стереоскопичности" .
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 18.10.2019 16:18:32

Truba_DS_0_0059_14_2_9M7 (18.10.2019)
"Кривая библиотека не помеха искривлению пространства ...."

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

Окно "Цифровые эффекты" добавил поддержку библиотеки FastDIB
В текущей версии доступны следующие эффекты и фильтры:
+fdGamma
+fdEmbossEdges
+fdSaturation
+fdFlop
+fdFlip
+fdInvert
+fdSquareWave
+fdRoundWave
+fdMosaic
+fdAutoContrast
-------------------------------------------------------------------------------
:arrow: Truba_DS_0_0059_14_2_9M7_Bin.7z :idea:
:arrow: Truba_DS_0_0059_14_2_9M7_SRC.7z :idea:
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 09.11.2019 16:50:58

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

А самый прикол в том что "квантовые шестеренки " реально вращаются и почти аутентично .
https://gifyu.com/image/vpY9
(Честно говоря сам не ожидал что получится так легко "сплагиатить" известную демку, да еще и с "закосом под ДР" ...
захваченная с экрана гифка разумеется не плавная но непосредственно в программе все смотрится значительно веселей )
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 12.11.2019 17:11:28

Truba_DS_0_0059_14_3_0M1 (12.11.2019) Вторник
"Виртуальная механика "

Окно "Цифровые эффекты" дополнение
(Загрузка и парсинг модели в формате ASC)
Раздел "3D Software"
s3d Загрузка Модели
("Проволочная" модель для привью )
Раздел "3D OpenGL"
ogl Загрузка Модели
(OpenGL модель. Пока без текстур )
Оба варианта выводятся на отдельный битмап .

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

:arrow: Truba_DS_0_0059_14_3_0M1_Bin.7z :idea:
:arrow: Truba_DS_0_0059_14_3_0M1_SRC.7z :idea:
(Прикол второго скрина в том, что в отличии от анонса я добился "искривления пространства" только для модели )
Кстати интересная мысль что получится если сделать движок где модели общитываются отдельно от фона и уже в виде спрайта вклеиваются в сцену ( с кучей красивых фильтраций и искажений ) ? Эдакая конверсия ретро технологий на новом уровне (А если к такому "двухступенчатому движку" добавить еще и " большой кэш готовых спрайтов .. то по идее и ускорение получить можно не слабое )

Ps
Опять не тот файл взял для шаблона описания (пропало описание предыдущей версии ) ... Ничего "я в сотый раз начну сначала".. :wink:
... Описание поправил файлы перезалил . :idea: И еще раз перезалил (Потому что что-то с архивом странное при просмотре на ЯД было ).
Alex2013
долгожитель
 
Сообщения: 1571
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru