mbot's Issues
Creazione delle strutture dati dei vari oggetti di scena
Separare i Detectors degli oggetti dalle classi degli oggetti
- Separare BallDetector da Ball
- Separare FieldDetector da Field
Rinominare Field a FieldDetector e aggiungere Field - Separare PlayerDetector da Player
I detector dovranno raccogliere informazioni sugli oggetti ed aggiornarli, gli oggetti dovranno contenere soltanto informazioni senza metodi.
Documentazione delle classi tramite ClassDiagram
- Installare il componente Progettazione classi
- Creare un diagramma classi del progetto
Per la creazione del diagramma classi è possibile segure questa guida dalla documentazione Microsoft.
Implementazione di una classe imageNormalizer
Spostare il compito del fieldDetector di normalizzare il campo nella classe imageNormalizer
Creazione del Detector dei player
creare la classe a la sua implementazione data l'immagine normalizzata.
deve derivare da IDetector.
Una possibile implementazione si può trovare qui
Creazione del Detector per la palla
creare la classe a la sua implementazione data l'immagine normalizzata.
deve derivare da IDetector.
possibile implementazione puo usare un colorHSV threshold e blob detection.
Trasferire le posizioni normalizzate e non normalizzate dal back-end al front-end
Le classi mBot Backend/libs/objects/Ball.h, mBot Backend/libs/objects/Field.h e mBot Backend/libs/objects/Player.h vengono utilizzate per il trasferimento dei dati dal back-end al front-end.
Ogni singolo oggetto dovrà trasferite sia le posizioni reali che le posizioni normalizzate al front-end.
Quando si trasferisce un punto (mBot Backend/libs/objects/Point.h) bisogna creare sia la variabile reale (es. Point realPosition;
) che la variabile normalizzata (es. Point normPosition;
).
Distribuzione origine video [back-end]
Creazione di un acquisitore/distributore dell'origine video
Creare una classe acquisitore di dati immagine/video addetto alla distribuzione dei dati verso ai detector ed al front-end.
La gestione dell'origine video dovrà essere completamente controllata dalla classe acquisitore.
NOTA:
Il trasferimento dei dati immagine/video al front-end momentaneamente può essere fatto con l'utilizzo di una cv::Mat
fornita da OpenCV, mentre in futuro bisognerà trovare un metodo che non dipenda da librerie esterne ( issue #9 ).
Il trasferimento interno dei dati immagine/video (quindi nel back-end) va comunque mantenuto utilizzando una cv::Mat
Switch per selezionare l'origine del video
Implementare uno switch che deve dare la possibilità di poter riprodurre video e immagini già salvate su disco o provenienti dal live feed dalla webcam.
Creazione del Detector per il field
creare la classe a la sua implementazione data l'immagine NON normalizzata.
deve derivare da IDetector.
dovrà trovare dei QRCode con dei valori predefiniti.
potrebbe utilizzare aRuco markers per motivi di efficienza
implementare l'update del Backend e inserire i dati da trasferire al frontend
- implementare il costruttore che inizializza tutti i detector
- aggiungere i detector che usa nel nei campi privati o publici
- implementare il metodo update che ottiene e trasferisce l'immagine tra i detectors
- inserire i dati da trasferire al frontend nella struct DataTransfer
Trasferimento immagini dal back-end al front-end
Implementare una classe per il trasporto dei dati immagine/video dal back-end al front-end.
Momentaneamente si può utilizzare la cv::Mat
fornita da OpenCV, mentre in futuro bisognerà utilizzare un metodo non dipendente da librerie esterne.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.