Prototype opencv code implementing SIFT ear recognition

Load solution into visual studio. Program is contained in
Assignment4.cpp
Relevant Files:
- Assignment4.cpp
- Directory "125"
- Contains 493 ear .bmp images: Input test database
- filenames.csv: Contains the filenames of every single .bmp file
- Warning: 024_2.bmp and 122_2.bmp should not be used as it will crash
the program for unknown reasons.
-Lab4.sln: Visual studio 2012 solution file
- uses OpenCV: 2.4.7: NOT THE MOST RECENT VERSION
Ignore every other file/folder
Re-organized OpenCV Code
Additions:
- Assignment4.cpp: Taken directly from Alex’s original project
	- Reorganized declarations of variables for clarity.
	- Commented da Shit out of it
- EAROpenCVSiftRecognition: Added to convert Assignment4.cpp to a class.
Successfully integrated the OpenCV code into the App
Additions:
- EARImageMatcher: an Objective-C class that performs the image analysis.
Finished implementing OpenCV code baseline
Implemented Camera Cropping and Database Saving
Changes:
- EARImageMatcher: Implemented two new methods: ExportDatabaseToXML, and ImportDatabaseFromXML:withDescriptorNames
	- Exporting returns an NSArray of strings corresponding to the names of the descriptors that were stored.
	- The naming format is simply “descriptor<i>” where i is the index of the descriptor
	- Importing takes in an NSArray of strings just like above
- Added: CameraOverLayView.xib: the overlay that goes over the camera
- Added: EARCameraOverlayView: the class of the view in the .xib file.
	- Simple subclass of UIView that passes on all touch events
- EARPatientBrowserViewController: Set the overlay view of the camera to the .xib file
	- Crop the image to the view that the user sees as well.
- InputImagesDatabase: Added new images for the database
Added The Data Model
Successfully implemented the first round of the data model capable of loading and storing the entire model to a .json file
Additions:
- EARPatientsDataStore: The top level storage object that holds all other objects
- EARPatient: A specific person or patient
- EARMedicalHistoryItem: An item in the MedicalHistoryArray of a patient
Changes:
- EARImageMatcher: Added inputing descriptor names into the ExportToXML method
Finished implementing the Backend
Successfully retrieve a patient ID from a picture of an ear
Redesigned and Implemented Application Flow
EARImageMatcherViewController is now presented modally and is the explicit manager of UIImagePickerController and all image handling.
Changes:
- OpenCVViewController is now EARImageMatcherViewController
- EARImageMatcherViewController:
	- Now contains camera handling functionality
	- New delegate protocol, as this is intended to be a modal view controller
		- Returns The patient that was chosen as a result of the image matching
	- Dispatches EARImageMatcher on the Global Queue to match an image when the user presses the button
	- Implements EARImageMatcher’s delegate protocol and performs DisplayMatchResultsSegue segue when a successful match occurs.
- Storyboard:
	- EARImageMatcherViewController’s segue is now modal
	- ImageMatcherView is now black, with a cancel button, the camera button on the top bar, and a status button
- EARPatientBrowser:
	- Now implements EARImageMatcherViewController’s Protocol to display the selected patient on exit
	- No longer contains any camera management
	- Presents EARImageMatcherViewController modally
- EARImagematcher
	- Added a delegate protocol for when a match is complete
Added EARMatchResultsTableViewController
This will display non-empty results from EARImageMatcher
Added a camera Loading view to EARImageMatcherViewController
The loading view is black, this way there is a black slide up when the view controller is presented, and the camera interface dissolves in. This gets rid of the “double transition” feeling.
Nightly Commit. Possibly fixed the Camera issue
Commit before committing changes.
Changeover successful, but there are issues.
Fixed issues and restored original functionality
Commit before adding a new patient to the database
It totally works!!
Nightly Commit
Cleanup after finished implementation
Changes: Re-structured implementation to allow for easier accessing of descriptors in the database given an index into the PatientIDs array, and vice versa.
Also, changed some SIFT parameters, and implemented adding a new patient to the database.