Go to the documentation of this file.00001
00002 #include "cmu_1394_camera_params.h"
00003 #include <vcl_iostream.h>
00004
00005 cmu_1394_camera_params::~cmu_1394_camera_params()
00006 {
00007 }
00008
00009 cmu_1394_camera_params::cmu_1394_camera_params(int video_format,
00010 int video_mode,
00011 int frame_rate,
00012 bool auto_exposure,
00013 bool auto_gain,
00014 bool manual_shutter_control,
00015 bool auto_exposure_control,
00016 int shutter,
00017 int min_shutter,
00018 int max_shutter,
00019 int gain,
00020 int min_gain,
00021 int max_gain,
00022 int brightness,
00023 int min_brightness,
00024 int max_brightness,
00025 int sharpness,
00026 int min_sharpness,
00027 int max_sharpness,
00028 int exposure,
00029 int min_exposure,
00030 int max_exposure,
00031 bool capture,
00032 bool rgb,
00033 bool autowhitebalance,
00034 int whitebalanceU,
00035 int whitebalanceV,
00036 bool onepushWBbalance,
00037 int min_WB,
00038 int max_WB)
00039
00040 {
00041
00042 video_format_ = video_format;
00043 video_mode_ = video_mode;
00044 frame_rate_ = frame_rate;
00045 auto_exposure_ = auto_exposure;
00046 auto_gain_ = auto_gain;
00047 manual_shutter_control_ = manual_shutter_control;
00048 shutter_ = shutter;
00049 min_shutter_ = min_shutter;
00050 max_shutter_ = max_shutter;
00051 gain_ = gain;
00052 min_gain_ = min_gain;
00053 max_gain_ = max_gain;
00054 brightness_ = brightness;
00055 min_brightness_ = min_brightness;
00056 max_brightness_ = max_brightness;
00057 sharpness_ = sharpness;
00058 min_sharpness_ = min_sharpness;
00059 max_sharpness_ = max_sharpness;
00060 auto_exposure_control_ = auto_exposure_control;
00061 exposure_ = exposure;
00062 min_exposure_ = min_exposure;
00063 max_exposure_ = max_exposure;
00064 capture_ = capture;
00065 rgb_ = rgb;
00066 autowhitebalance_=autowhitebalance;
00067 whitebalanceU_=whitebalanceU;
00068 whitebalanceV_=whitebalanceV;
00069 onepushWBbalance_=onepushWBbalance;
00070 min_WB_=min_WB;
00071 max_WB_=max_WB;
00072 }
00073
00074 void cmu_1394_camera_params::set_params(const cmu_1394_camera_params& cp)
00075 {
00076 video_format_ = cp.video_format_;
00077 video_mode_ = cp.video_mode_;
00078 frame_rate_ = cp.frame_rate_;
00079 auto_exposure_ = cp.auto_exposure_;
00080 auto_gain_ = cp.auto_gain_;
00081 manual_shutter_control_ = cp.manual_shutter_control_;
00082 shutter_ = cp.shutter_;
00083 min_shutter_ = cp.min_shutter_;
00084 max_shutter_ = cp.max_shutter_;
00085 gain_ = cp.gain_;
00086 min_gain_ = cp.min_gain_;
00087 max_gain_ = cp.max_gain_;
00088 brightness_ = cp.brightness_;
00089 min_brightness_ = cp.min_brightness_;
00090 max_brightness_ = cp.max_brightness_;
00091 sharpness_ = cp.sharpness_;
00092 min_sharpness_ = cp.min_sharpness_;
00093 max_sharpness_ = cp.max_sharpness_;
00094 auto_exposure_control_ = cp.auto_exposure_control_;
00095 exposure_ = cp.exposure_;
00096 min_exposure_ = cp.min_exposure_;
00097 max_exposure_ = cp.max_exposure_;
00098 capture_ = cp.capture_;
00099 rgb_ = cp.rgb_;
00100 autowhitebalance_=cp.autowhitebalance_;
00101 whitebalanceU_=cp.whitebalanceU_;
00102 whitebalanceV_=cp.whitebalanceV_;
00103 onepushWBbalance_=cp.onepushWBbalance_;
00104 min_WB_=cp.min_WB_;
00105 max_WB_=cp.max_WB_;
00106 }
00107
00108 cmu_1394_camera_params::cmu_1394_camera_params(const cmu_1394_camera_params& cp)
00109 {
00110 this->set_params(cp);
00111 }
00112
00113
00114 void cmu_1394_camera_params::constrain()
00115 {
00116 if (!manual_shutter_control_&&auto_exposure_control_)
00117 auto_exposure_ = true;
00118
00119
00120 if (shutter_<min_shutter_)
00121 shutter_ = min_shutter_;
00122 if (shutter_>max_shutter_)
00123 shutter_ = max_shutter_;
00124
00125 if (gain_<min_gain_)
00126 gain_ = min_gain_;
00127 if (gain_>max_gain_)
00128 gain_ = max_gain_;
00129
00130 if (brightness_<min_brightness_)
00131 brightness_ = min_brightness_;
00132 if (brightness_>max_brightness_)
00133 brightness_ = max_brightness_;
00134
00135 if (sharpness_<min_sharpness_)
00136 sharpness_ = min_sharpness_;
00137 if (sharpness_>max_sharpness_)
00138 sharpness_ = max_sharpness_;
00139
00140 if (exposure_<min_exposure_)
00141 exposure_ = min_exposure_;
00142 if (exposure_>max_exposure_)
00143 exposure_ = max_exposure_;
00144 }
00145
00146 vcl_string cmu_1394_camera_params::
00147 video_configuration(const int video_format, const int video_mode) const
00148 {
00149 if (video_format<0||video_mode<0)
00150 return "";
00151 else if (video_format==0)
00152 switch (video_mode)
00153 {
00154 case 0:
00155 return "160x120 YUV(4:4:4)";
00156 case 1:
00157 return "320x240 YUV(4:2:2)";
00158 case 2:
00159 return "640x480 YUV(4:1:1)";
00160 case 3:
00161 return "640x480 YUV(4:2:2)";
00162 case 4:
00163 return "640x480 RGB";
00164 case 5:
00165 return "640x480 Mono";
00166 default:
00167 return "";
00168 }
00169 else if (video_format==1)
00170 switch (video_mode)
00171 {
00172 case 0:
00173 return "800x600 YUV(4:2:2)" ;
00174 case 1:
00175 return "800x600 RGB";
00176 case 2:
00177 return "800x600 Mono";
00178 case 3:
00179 return "1024x768 YUV(4:2:2)";
00180 case 4:
00181 return "1024x768 RGB";
00182 case 5:
00183 return "1024x768 Mono(8 bits)";
00184 default:
00185 return "";
00186 }
00187 else if (video_format==2)
00188 switch (video_mode)
00189 {
00190 case 0:
00191 return "1280x960 YUV(4:2:2)";
00192 case 1:
00193 return "1280x960 RGB";
00194 case 2:
00195 return "1280x960 Mono";
00196 case 3:
00197 return "1600x1200 YUV(4:2:2)";
00198 case 4:
00199 return "1600x1200 RGB";
00200 case 5:
00201 return "1600x1200 Mono";
00202 default:
00203 return "";
00204 }
00205 else if (video_format==7)
00206 return "Partial Scan (ROIs)";
00207 else
00208 return "";
00209 }
00210
00211 vcl_string cmu_1394_camera_params::frame_rate(const int rate_code) const
00212 {
00213 switch (rate_code)
00214 {
00215 case 0:
00216 return "1.875";
00217 case 1:
00218 return "3.75";
00219 case 2:
00220 return "7.5";
00221 case 3:
00222 return "15.0";
00223 case 4:
00224 return "30.0";
00225 case 5:
00226 return "60.0";
00227 default:
00228 return "";
00229 }
00230 }
00231
00232 vcl_ostream& operator<<(vcl_ostream& os, const cmu_1394_camera_params& cp)
00233 {
00234 return
00235 os << "video_format: " << cp.video_format_
00236 << "\nvideo_mode: " << cp.video_mode_
00237 << "\nframe_rate: " << cp.frame_rate_
00238 << "\nmanual shutter control: "<< (cp.manual_shutter_control_?"YES" : "NO")
00239 << " | auto exposure control: "<< (cp.auto_exposure_control_ ?"YES" : "NO")
00240 << "\nauto_exposure: "<< (cp.auto_exposure_ ? "ON" : "OFF")
00241 << " | auto_gain: " << (cp.auto_gain_ ? "ON" : "OFF")
00242 << "\nshutter: " << cp.min_shutter_ << " < " << cp.shutter_
00243 << " < " << cp.max_shutter_
00244 << "\ngain: " << cp.min_gain_ << " < " << cp.gain_ << " < " << cp.max_gain_
00245 << "\nbrightness: " << cp.min_brightness_ << " < " << cp.brightness_
00246 << " < " << cp.max_brightness_
00247 << "\nsharpness: " << cp.min_sharpness_ << " < " << cp.sharpness_
00248 << " < " << cp.max_sharpness_
00249 << "\nexposure: " << cp.min_exposure_ << " < " << cp.exposure_
00250 << " < " << cp.max_exposure_
00251 << "\ncapture: " << cp.capture_
00252 << "\nrgb: " << cp.rgb_
00253 << "\nWB U "<<cp.min_WB_<<"<"<<cp.whitebalanceU_<<">"<<cp.max_WB_
00254 << "\nWB V "<<cp.min_WB_<<"<"<<cp.whitebalanceV_<<">"<<cp.max_WB_<<vcl_endl;
00255 }