|
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
|
||||||
Построение среднего кадра по предыдущему и последующему кадру14.06.2020, 08:38. Показов 1448. Ответов 8
Метки canvas, cod, coding, draw, help me, help-me-please, matlab, python, python 2.7, python 2.x, python 3, python 3.5, python 3.6, python 3.7, python 3.x, python numpy matplotlib, python для начинающих, двумерные массивы, двумерный массив (Все метки)
Здравствуйте, я самый новенький из всех новичков в Python'e, да и в программировании в целом. Буквально ночью скачал PyCharm и начал пытаться реализовывать код.
ТЗ: Есть первый и третий кадр На них находятся несколько объектов (кружочков), внешне похожих, но они разные. Положение объектов относительно друг друга не меняется. Объекты движутся по линейной траектории. Нужно вычислить координаты положения объектов на середине между первым и вторым кадром. И самое главное, нужно создать этот кадр - новое изображение, на котором объекты будут находится на вычисленных координатах. Я вроде немного справился с кодом. Смог разобраться как вычислить объекты на изображении, подсветить их контура и вычислить середины объектов Занес данные о координатах центра объектов в два массива, соответственно с первого и третьего кадра. Сделал вывод изображений с подсвеченными контурами объектов и вывод массивов с координатами центра объектов для наглядности. Вот код, который у меня получился:
А далее для меня начинается темный лес, я не понимаю как мне запомнить объекты с изображения (т.е их размер, форму и т.д) и перенести на новые координаты. Копался в интернете, но из за скудных познаний в программировании не смог ничего понять и найти полезного. Везде описываются именно способы нахождения объектов на изображении, но нигде нет описания как их перемещать. Примерный кадр, который должен получиться в результате работы программы (нарисовал в Paint'e): Если кто то сможет помочь с данной задачей, буду рад отблагодарить. Код нужен для дипломной работы, хотя мое направление никоим образом не пересекается с информатикой/программированием. До этого максимум, в чем я писал код, была среда Matlab. Мой научный руководитель предложил для последней главы диплома разработать такой алгоритм в этой среде. Я зачем-то согласился. После нескольких дней упорных попыток реализовать этот алгоритм в Matlab'e, пришел к выводу, что там он просто не реализуем. Знакомые подсказали, что можно попробовать реализовать его в Python'e с помощью OpenCV, отсюда и началось мое знакомство с данной средой. Не пинайте сильно, это первый мой пост, да и один из первых кодов в моей жизни)
0
|
||||||
| 14.06.2020, 08:38 | |
|
Ответы с готовыми решениями:
8
xsl:for-each доступ предыдущему/последующему элементу Map iterator обращение к предыдущему или последующему элементу Функция рассеяния точки (airy-function) в OpenGL, построение кадра в ИК-диапазоне |
|
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
|
|
| 14.06.2020, 08:50 | |
|
Кадры отличаются только трансляцией или еще вращением и формой объектов?
0
|
|
|
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
|
|
| 14.06.2020, 08:54 [ТС] | |
|
Нет, отличаются только положением объектов в кадре.
Не вращаются и форму не меняют.
0
|
|
|
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
|
|
| 14.06.2020, 08:57 | |
|
Если только трансляцией, то можно сделать FFT2 посчитать среднюю фазу и преобразовать обратно. В матлабе всего строчек 5, наверное, будет.
0
|
|
|
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
|
|
| 14.06.2020, 09:02 [ТС] | |
|
Если можно, опишите немного подробнее, пожалуйста.
Как это реализовать при использовании предыдущего и последующего кадра. Как я понимаю, мы сначала поочередно их считываем, потом используем 2D преобразование Фурье и получаем координаты. А дальше как быть? У меня самая большая проблема именно с построением нового изображения.
0
|
|
|
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
|
||||||
| 14.06.2020, 10:03 | ||||||
|
Requestin,
Напрямую, как я хотел, не получилось, возникла проблема с правильной интерполяцией фаз.. Но можно и так, переписать на Python с использованием scipy, numpy, думаю, будет просто:
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
|
|
| 14.06.2020, 10:11 [ТС] | |
|
Большое спасибо за помощь!
В Matlab'e тоже отлично подойдет, обойдусь реализацией в нем ![]() Еще один небольшой вопрос, реализуем ли в Matlabe алгоритм экстраполяции с предсказанием? Имеется ввиду, опять есть те же данные два кадра, те же объекты и условия, но построить уже нужно следующий кадр, предсказывая положение объектов в новом кадре. Если да, то насколько это сложно?
0
|
|
|
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
|
|
| 14.06.2020, 10:23 | |
|
Requestin, по хорошему, это делается с помощью вычисления оптического потока Optical Flow. В Матлабе что-то было на эту тему, но я с видео не работал. Но, там разница между кадрами должна быть небольшой, а не как у вас.
А так, [k,n] - вектор трансляции, умножите его на число меньше единицы (я делил на 2) - интерполяция, больше единицы - аппроксимация (с учетом зацикливания кадра, разумеется). https://www.mathworks.com/help... eflow.html
0
|
|
|
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
|
|
| 14.06.2020, 10:29 [ТС] | |
|
Спасибо, буду пробовать
0
|
|
| 14.06.2020, 10:29 | |
|
Помогаю со студенческими работами здесь
9
Программа, которая имеет методы подсчета среднего арифметического, среднего геометрического, среднего квадратичного Игнорирует действие и переходит к последующему
Угадай фильм по кадру Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|