This will be one of the larger projects I will have ever worked on, and as a result it became clear to me that I needed to make a few design choices early on in order to make sure I wouldn't end up doing redundant work later. The first of these was deciding what programming language I wanted to write the body of my work in. Currently, the Imaging Science program stresses the use of IDL and MATLAB as programming languages. These are great because they have very simple and powerful image input/output, as well as powerful array manipulation tools. I've spent the last two years of my life programming in MATLAB, but I feel as though I'm ready for something new. Also, learning to program in another language that isn't $3,000 or more for a license will be a great skill to have! This is school and I'm supposed to be learning, right? Finally, the ability to perform realtime video processing is an interest of mine, and learning a lower level language is the next step in that direction. So, for all of these reasons, I decided that I'm going to write my senior project in C++, using OpenCV and other third party open source libraries as necessary. I already have a year's experience from High School with Java through my AP Computer Science class, and I've been programming since well before then. The move to C++ ought not to be too bad. |