The current existing camera that is being used is very old. The camera writes to both .png and .rgb formats and is connected via USB. Our Client mentioned that they may purchase additional cameras in the future that would be more modern. However, we will start out by using this camera and work with the .png image format. We will aim to write modular code that works with the old existing camera as well as newer cameras that NPOI may obtain.
The project already has some code that was provided by the Client. The code controls the motors that align the mirrors as well as other user inputs. The existing code has been written in java and was provided to us via Github. The entire team has experience writing in java so we felt it would be best to continue to use it.
We wrote the code for this project using the IntelliJ IDEA IDE. IntelliJ IDEA has many built-in features which helped with our development of the project. IntelliJ IDEA also allows us to commit and push changes durectly to our Github repository with its built-in Soure Control feature.
The OpenCV framework has made a name for itself as one of the most effective object detection frameworks available. It allows us to seach pixel by pixel through an image for a specific attribute. We were able to use it to search png images for the brightest cluster of pixels within the image. Additionally, it works great with our user interface framework for displaying the image with the found object.
The user interface was a large aspect of this project. Because of this, we wanted something lightweight, clean, and easy to create. JavaFX was a great choice, as it allowed us to build it with a sort of html/css formatting. Additionally, we could view a visual editor of the user interface where we could view what it looked like in real time while creating/modifying it.