Data Acquisition Software
The Data Acquisition (DAQ) Software developed for this project and provided through this wiki supports live streaming, syncing, and recording from up to two video sources. The software gives the user full control of camera properties (such as gain, exposure, frame rate) as well as controls the power of the excitation LED. Written in C++ using Microsoft Visual Studio, the software uses Open Computer Visions (OpenCV) to connect, control, and stream video data.
When a video source (microscope or behavioral camera) is connected, a new processing thread is created which constantly polls the video source for a new frame. If the video is being recorded to disk, an addition thread is created which handles writing video data to disk without adding any overhead to the acquisition threads. While not fully implemented yet, the multithreaded nature of the software can support online image processing and real-time feedback without affecting data acquisition.
The data recorded by the DAQ software is saved in a folder structure based on the data and time of recording.
- Date/Time folder structure/
- ‘settings_and_notes.dat’ records scope settings and notes
- ‘timestamp.dat’ holds timing and syncing data for video streams
- ‘msCam1.avi’, ‘msCam2.avi’, etc. hold 1000 frames each of scope data
- ‘behavCam1.avi’, behavCam2.avi’, etc. hold 1000 frames each of behavior camera data
- Live streaming/recording of microscope and behavioral camera video
- Syncing of video streams and external devices
- Controls exposure, gain, ROI, LED excitation power, frame rate
- Embedded note taking with time stamps
- Pixel saturation detection
- Supports color and monochrome imaging sensors
- Multithreaded software with dedicated thread for real-time feedback/processing