/***************************************************************************** - - - POLONY SEQUENCER ACQUISITION SUITE - - Church Lab - - Harvard Medical School - - - - Free software for running a Polony Sequencing automated microscope - - - - ========================================================================= - - - - - - autoexpose.h - - - - Program to perform automated exposure and sensitivity setting. Adjusts - - exposure and sensitivity to bring the background value for each channel - - independently to a pre-determined value. These pre-determined values - - have been manually selected to minimize interference between channels. - - In computing the intensity distribution for each channel, only pixels - - corresponding to beads are used. - - - - Written by Greg Porreca, 02-15-2006 - - - - Revised - - - - - - This software may be used, modified, and distributed freely, but this - - header may not be modified and must appear at the top of this file. - - - - - *****************************************************************************/ #ifndef AUTOEXPOSE_H #define AUTOEXPOSE_H #include //input and output functionality #include #include "chamcam.h" #include "cfilter.h" #include "cpifoc.h" #include "reporter.h" #include "cscope.h" #include "acquisition.h" class Autoexpose{ public: Autoexpose::Autoexpose(Reporter*, CHamCam*, CFilter*, CScope*, CPifoc*, Acquisition*, short unsigned int*); Autoexpose::~Autoexpose(); void Autoexpose::autoexpose(double *exposure, double *sensitivity, short unsigned int*, int fluorophore, char *cyclename); int Autoexpose::getPeak(int *hist, int num_bins); void Autoexpose::calchist(short unsigned int *image, int *hist); void Autoexpose::dumptofile(int *histogram, double curr_exp, double curr_sens, char *cyclename); bool Autoexpose::save_image(short unsigned int *curr_img, char *filename, char *cyclename); private: CHamCam* this_camera; CFilter* this_filter; Reporter* r; CScope* this_te2000; CPifoc* this_pifoc; Acquisition* acq; short unsigned int *brightfield_img; double exp; double sens; char log_string[500]; double ae_sens; double min_exp; int min_exp; double step; }; #endif