We have a C++ application that supports a number of camera models. We are interested in adding support for a USB 3.0 camera from MatrixVision ( [url removed, login to view] ). We wish to outsource the integration of this camera into our engine.
Since the freelancer will need to connect to the physical camera hardware for this project, a development machine with Visual Studio and all the required hardware will be set up for them on site here and will be made available for remote access so that you may connect to the camera and integrate the camera SDK into our engine, if you wish to do your coding while connected to the camera. We have a good broadband connection speed here so as long as you have the same then both connection speeds and work speeds should be fine.
A camera that we already support will also be available for you to connect to, so that you may understand what is required.
You will be provided with both source code and binaries, enough sufficient to the task.
You will be expected to produce a high quality of code and to adhere to our coding standards.
You will be expected to submit patches for review prior to code being accepted and committed.
We will be available during UK office hours and you will be expected to be able to work on this project without excessive amounts of supervision.
The information below may not be a complete list of features that we will require to be implemented but it should be a good indication:
- get SDK version
- initialise and terminate SDK access
- get camera serial id
- save image to file
- get image resolution for both full and video resolution images
- set iso / gain
- set video quality : binning, subsampling
- set white balance
- set exposure
- capture still resolution image
- capture video resolution image
- set auto exposure
- calculate optimal bandwidth
- find all cameras attached to the computer
- search for then connect to each specific camera as there may be multiple cameras
- listen for and react to events returned from the camera, including error events
- create a container of memory buffers
- set an area of interest
- set the camera to run in trigger mode ie software only captures an image when specifically requested
- average multiple images in hardware