running app for edinburgh

Tom please test :-)
This commit is contained in:
dviid 2012-03-01 07:31:47 +01:00
parent a0483636ac
commit 46d02b4166

View File

@ -18,78 +18,78 @@ void CamNoiseAnalysis::setup(int camWidth, int camHeight)
NUM_RUN = RefractiveIndex::XML.getValue("config:analysis_NUM_RUN:NUM_RUN_camnoise", NUMBER_RUNS); NUM_RUN = RefractiveIndex::XML.getValue("config:analysis_NUM_RUN:NUM_RUN_camnoise", NUMBER_RUNS);
cout << "NUM_RUN CamNoiseAnalysis " << NUM_RUN << endl; cout << "NUM_RUN CamNoiseAnalysis " << NUM_RUN << endl;
//NUM_RUN = 5; //NUM_RUN = 5;
int acq_run_time; // 10 seconds of acquiring per run int acq_run_time; // 10 seconds of acquiring per run
acq_run_time = RefractiveIndex::XML.getValue("config:analysis_time:acquiretime_camnoise", ACQUIRE_TIME); acq_run_time = RefractiveIndex::XML.getValue("config:analysis_time:acquiretime_camnoise", ACQUIRE_TIME);
cout << "ACQUIRE_TIME CamNoiseAnalysis " << acq_run_time << endl; cout << "ACQUIRE_TIME CamNoiseAnalysis " << acq_run_time << endl;
//int acq_run_time = 20; // 20 seconds of acquiring per run //int acq_run_time = 20; // 20 seconds of acquiring per run
DELTA_T_SAVE = 2*(10*acq_run_time/2); // for 20 seconds, we want this to be around 200 files DELTA_T_SAVE = 2*(10*acq_run_time/2); // for 20 seconds, we want this to be around 200 files
// or 5 times per second = every 200 ms // or 5 times per second = every 200 ms
_frame_cnt_max = acq_run_time*ofGetFrameRate(); // e.g.: 30 frames per second * 20 seconds = 600 frames _frame_cnt_max = acq_run_time*ofGetFrameRate(); // e.g.: 30 frames per second * 20 seconds = 600 frames
_frame_cnt = 0; _frame_cnt = 0;
_run_cnt = 0; _run_cnt = 0;
_synth_save_cnt = 0; _synth_save_cnt = 0;
c = 0; c = 0;
int anim_time = 10; // 10 seconds int anim_time = 10; // 10 seconds
_anim_cnt_max = anim_time*ofGetFrameRate(); // e.g.: 30 frames per second = 150 frames _anim_cnt_max = anim_time*ofGetFrameRate(); // e.g.: 30 frames per second = 150 frames
//create_dir_allocate_images(); //create_dir_allocate_images();
_show_image = false; _show_image = false;
_image_shown = false; _image_shown = false;
image1.clear(); image1.clear();
image2.clear(); image2.clear();
image3.clear(); image3.clear();
image4.clear(); image4.clear();
image5.clear(); image5.clear();
// images use for drawing the synthesized files to the screen /// // images use for drawing the synthesized files to the screen ///
image1.setUseTexture(false); // the non texture image that is needed to first load the image image1.setUseTexture(false); // the non texture image that is needed to first load the image
image2.setUseTexture(true); // the image that needs to get written to the screen which takes the content of image1 image2.setUseTexture(true); // the image that needs to get written to the screen which takes the content of image1
// images used for re-loading and saving out the synthesized files /// // images used for re-loading and saving out the synthesized files ///
image3.setUseTexture(false); image3.setUseTexture(false);
image4.setUseTexture(false); image4.setUseTexture(false);
image5.setUseTexture(false); image5.setUseTexture(false);
image1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR); image1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR);
image2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR); image2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR);
image3.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR); image3.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR);
image4.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR); image4.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR);
image5.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR); image5.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h, OF_IMAGE_COLOR);
//cout << "RefractiveIndex::_vid_w " << RefractiveIndex::_vid_w << endl; //cout << "RefractiveIndex::_vid_w " << RefractiveIndex::_vid_w << endl;
//cout << "RefractiveIndex::_vid_h " << RefractiveIndex::_vid_h << endl; //cout << "RefractiveIndex::_vid_h " << RefractiveIndex::_vid_h << endl;
// clear() apparently fixes the "OF_WARNING: in allocate, reallocating a ofxCvImage" // clear() apparently fixes the "OF_WARNING: in allocate, reallocating a ofxCvImage"
// that we're getting in OSX/Windows and is maybe crashing Windows // that we're getting in OSX/Windows and is maybe crashing Windows
// http://forum.openframeworks.cc/index.php?topic=1867.0 // http://forum.openframeworks.cc/index.php?topic=1867.0
cvColorImage1.clear(); cvColorImage1.clear();
cvGrayImage1.clear(); cvGrayImage1.clear();
cvGrayDiff1.clear(); cvGrayDiff1.clear();
cvColorImage2.clear(); cvColorImage2.clear();
cvGrayImage2.clear(); cvGrayImage2.clear();
cvGrayDiff2.clear(); cvGrayDiff2.clear();
cvConvertorImage.clear(); cvConvertorImage.clear();
cvColorImage1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvColorImage1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvGrayImage1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvGrayImage1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvGrayDiff1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvGrayDiff1.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvColorImage2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvColorImage2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvGrayImage2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvGrayImage2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvGrayDiff2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvGrayDiff2.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
cvConvertorImage.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h); cvConvertorImage.allocate(RefractiveIndex::_vid_w,RefractiveIndex::_vid_h);
} }
@ -113,7 +113,7 @@ void CamNoiseAnalysis::acquire()
save_timer = new Timer(0, DELTA_T_SAVE); // timing interval for saving files save_timer = new Timer(0, DELTA_T_SAVE); // timing interval for saving files
save_timer->start(save_callback); save_timer->start(save_callback);
while(!_RUN_DONE && _state != STATE_STOP) while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3); Thread::sleep(3);
@ -124,75 +124,83 @@ void CamNoiseAnalysis::acquire()
} }
void CamNoiseAnalysis::synthesise() void CamNoiseAnalysis::synthesise()
{ {
//cout << "CamNoiseAnalysis::saving synthesis...\n"; //cout << "CamNoiseAnalysis::saving synthesis...\n";
if(_state == STATE_STOP) return; if(_state == STATE_STOP) return;
for(float i=1;i<_saved_filenames_analysis.size()-1;i++){ for(float i=1;i<_saved_filenames_analysis.size()-1;i++){
//cout << "CamNoiseAnalysis::synthesis FOR LOOP...\n"; //cout << "CamNoiseAnalysis::synthesis FOR LOOP...\n";
//cout << "_saved_filenames_analysis[i]" << _saved_filenames_analysis[i] << endl; //cout << "_saved_filenames_analysis[i]" << _saved_filenames_analysis[i] << endl;
if(_state == STATE_STOP) return; if(_state == STATE_STOP) return;
if(!image1.loadImage(_saved_filenames_analysis[i])){ if(!image1.loadImage(_saved_filenames_analysis[i])){
//couldn't load image //couldn't load image
cout << "didn't load image" << endl; cout << "didn't load image" << endl;
} }
if(image1.loadImage(_saved_filenames_analysis[i])){ if(image1.loadImage(_saved_filenames_analysis[i])){
//cout << "LOADED image1!!!" << endl; //cout << "LOADED image1!!!" << endl;
//if(image5.loadImage(_saved_filenames_analysis[i+1])){ //if(image5.loadImage(_saved_filenames_analysis[i+1])){
///////////////////////// PROCESS THE SAVED CAMERA IMAGES OF SHIT TO THE IMAGES ////////////////////////// ///////////////////////// PROCESS THE SAVED CAMERA IMAGES OF SHIT TO THE IMAGES //////////////////////////
cvColorImage1.setFromPixels(image1.getPixels(), image1.width, image1.height); cvColorImage1.setFromPixels(image1.getPixels(), image1.width, image1.height);
//cvColorImage2.setFromPixels(image5.getPixels(), image5.width, image5.height); //cvColorImage2.setFromPixels(image5.getPixels(), image5.width, image5.height);
cvColorImage1.convertToGrayscalePlanarImage(cvGrayImage1, 1); cvColorImage1.convertToGrayscalePlanarImage(cvGrayImage1, 1);
// cvColorImage2.convertToGrayscalePlanarImage(cvGrayImage2, 1); // cvColorImage2.convertToGrayscalePlanarImage(cvGrayImage2, 1);
//added by tom we weren't actually setting cvgrayimage1 anywhere
// cvGrayImage1.setFromPixels(cvColorImage1.getPixels(),cvColorImage1.width,cvColorImage1.height);
//cvGrayDiff1.absDiff(cvGrayImage2, cvGrayImage1); //cvGrayDiff1.absDiff(cvGrayImage2, cvGrayImage1);
//cvGrayImage1=cvColorImage1;
cvGrayImage1.erode(); cvGrayImage1.erode();
cvGrayImage1.erode(); cvGrayImage1.erode();
cvGrayImage1.erode(); cvGrayImage1.erode();
cvGrayImage1.blur(); cvGrayImage1.blur();
cvGrayImage1.contrastStretch(); cvGrayImage1.contrastStretch();
/* cvColorImage1.erode();
cvColorImage1.erode();
cvColorImage1.erode();
cvColorImage1.blur();
cvColorImage1.contrastStretch();*/
/////////////////////////////////// SAVE TO DISK IN THE SYNTHESIS FOLDER //////////////////////////////// /////////////////////////////////// SAVE TO DISK IN THE SYNTHESIS FOLDER ////////////////////////////////
string file_name; string file_name;
file_name = ofToString(_synth_save_cnt, 2)+"_CamNoiseAnalysis_"+ofToString(_run_cnt,2)+".jpg"; file_name = ofToString(_synth_save_cnt, 2)+"_CamNoiseAnalysis_"+ofToString(_run_cnt,2)+".jpg";
//<---- THE OLD WAY OF SAVING - works on OSX but generates BLACK FRAMES on WINDOWS ----> //<---- THE OLD WAY OF SAVING - works on OSX but generates BLACK FRAMES on WINDOWS ---->
// ofSaveImage(cvGrayImage1.getPixelsRef(),_whole_file_path_synthesis+"/"+file_name, OF_IMAGE_QUALITY_BEST); // ofSaveImage(cvGrayImage1.getPixelsRef(),_whole_file_path_synthesis+"/"+file_name, OF_IMAGE_QUALITY_BEST);
//<---- NEW SAVING - seems to fix WINDOWS saving out BLACK FRAMES PROBLEM ----> //<---- NEW SAVING - seems to fix WINDOWS saving out BLACK FRAMES PROBLEM ---->
//ofImage image; //ofImage image;
//image.allocate(cvGrayImage1.width, cvGrayImage1.height, OF_IMAGE_GRAYSCALE); //image.allocate(cvGrayImage1.width, cvGrayImage1.height, OF_IMAGE_GRAYSCALE);
//*** This needs to be here for OSX of we get a BAD ACCESS ERROR. DOES IT BREAK WINDOWS? ***// //*** This needs to be here for OSX of we get a BAD ACCESS ERROR. DOES IT BREAK WINDOWS? ***//
//image.setUseTexture(false); //image.setUseTexture(false);
//image.setFromPixels(cvGrayImage1.getPixels(), cvGrayImage1.width, cvGrayImage1.height, OF_IMAGE_GRAYSCALE); //image.setFromPixels(cvGrayImage1.getPixels(), cvGrayImage1.width, cvGrayImage1.height, OF_IMAGE_GRAYSCALE);
//image.saveImage(_whole_file_path_synthesis+"/"+file_name); //image.saveImage(_whole_file_path_synthesis+"/"+file_name);
//_saved_filenames_synthesis.push_back(_whole_file_path_synthesis+"/"+file_name); //_saved_filenames_synthesis.push_back(_whole_file_path_synthesis+"/"+file_name);
// <--- REALLY NEW SAVING METHOD --- 26 feb 2012 --- consolidated the save function into Abstract Analysis> /// // <--- REALLY NEW SAVING METHOD --- 26 feb 2012 --- consolidated the save function into Abstract Analysis> ///
cvConvertorImage.setFromGrayscalePlanarImages(cvGrayDiff1,cvGrayDiff1,cvGrayDiff1); cvConvertorImage.setFromGrayscalePlanarImages(cvGrayImage1,cvGrayImage1,cvGrayImage1);
//cvConvertorImage.setFromGrayscalePlanarImages(cvColorImage1,cvColorImage1,cvColorImage1);
saveImageSynthesis(file_name, &cvConvertorImage, OF_IMAGE_GRAYSCALE); saveImageSynthesis(file_name, &cvConvertorImage, OF_IMAGE_GRAYSCALE);
_synth_save_cnt++; _synth_save_cnt++;
//} //}
} }
} }
// _saved_filenames_synthesis has processed all the files in the analysis images folder // _saved_filenames_synthesis has processed all the files in the analysis images folder
while(!_RUN_DONE && _state != STATE_STOP) while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3); Thread::sleep(3);
@ -201,21 +209,21 @@ void CamNoiseAnalysis::synthesise()
void CamNoiseAnalysis::displayresults() void CamNoiseAnalysis::displayresults()
{ {
for(float i=1;i<_saved_filenames_synthesis.size();i++){ for(float i=1;i<_saved_filenames_synthesis.size();i++){
if(_state == STATE_STOP) return; if(_state == STATE_STOP) return;
//cout << "_saved_filenames_analysis[i] - " << _saved_filenames_synthesis[i] << endl; //cout << "_saved_filenames_analysis[i] - " << _saved_filenames_synthesis[i] << endl;
while(!_image_shown){ while(!_image_shown){
Thread::sleep(2); Thread::sleep(2);
//cout << "!_image_shown" << endl; //cout << "!_image_shown" << endl;
} }
if(!image3.loadImage(_saved_filenames_synthesis[i])){ if(!image3.loadImage(_saved_filenames_synthesis[i])){
//couldn't load image //couldn't load image
cout << "didn't load image" << endl; cout << "didn't load image" << endl;
} }
if(image3.loadImage(_saved_filenames_synthesis[i])){ if(image3.loadImage(_saved_filenames_synthesis[i])){
image3.loadImage(_saved_filenames_synthesis[i]); image3.loadImage(_saved_filenames_synthesis[i]);
//cout << "_show_image = true;" << endl; //cout << "_show_image = true;" << endl;
@ -235,30 +243,30 @@ void CamNoiseAnalysis::draw()
/// *** TODO *** /// /// *** TODO *** ///
// still need to deal with latency frames here - i.e.: there are frames // still need to deal with latency frames here - i.e.: there are frames
/// *** TODO *** /// /// *** TODO *** ///
if (_frame_cnt < _frame_cnt_max) if (_frame_cnt < _frame_cnt_max)
{ {
ofEnableAlphaBlending(); ofEnableAlphaBlending();
ofColor aColour; ofColor aColour;
int _fade_in_frames = _frame_cnt_max/10; int _fade_in_frames = _frame_cnt_max/10;
float _number_of_grey_levels=5; float _number_of_grey_levels=5;
float _frames_per_level = _frame_cnt_max / _number_of_grey_levels; float _frames_per_level = _frame_cnt_max / _number_of_grey_levels;
ofColor someColor; ofColor someColor;
/* /*
if (_frame_cnt < _fade_in_frames) { if (_frame_cnt < _fade_in_frames) {
aColour.set(255, 255, 255, ofMap(_frame_cnt, 0, _fade_in_frames, 0, 255)); aColour.set(255, 255, 255, ofMap(_frame_cnt, 0, _fade_in_frames, 0, 255));
ofSetColor(aColour); ofSetColor(aColour);
ofRect(0, 0, ofGetWidth(), ofGetHeight()); ofRect(0, 0, ofGetWidth(), ofGetHeight());
//cout << "FADE IN STROBE TIME " << endl; //cout << "FADE IN STROBE TIME " << endl;
} }
*/ */
//if (_frame_cnt >= _fade_in_frames && _frame_cnt < (_frame_cnt_max)){ //if (_frame_cnt >= _fade_in_frames && _frame_cnt < (_frame_cnt_max)){
for(int i=1;i<_number_of_grey_levels;i++){ for(int i=1;i<_number_of_grey_levels;i++){
if ( _frame_cnt >= _frames_per_level*(i-1) && +_frame_cnt < _frames_per_level * (i+1) ) { if ( _frame_cnt >= _frames_per_level*(i-1) && +_frame_cnt < _frames_per_level * (i+1) ) {
//set colour to current grey level //set colour to current grey level
@ -266,11 +274,11 @@ void CamNoiseAnalysis::draw()
//cout << "c: " << c << endl; //cout << "c: " << c << endl;
someColor.set(c); someColor.set(c);
} }
ofSetColor(someColor); ofSetColor(someColor);
ofRect(0, 0, ofGetWidth(), ofGetHeight()); ofRect(0, 0, ofGetWidth(), ofGetHeight());
} }
//} //}
/* /*
if (_frame_cnt >= (_frame_cnt_max-_fade_in_frames) && _frame_cnt < _frame_cnt_max) { if (_frame_cnt >= (_frame_cnt_max-_fade_in_frames) && _frame_cnt < _frame_cnt_max) {
@ -278,92 +286,92 @@ void CamNoiseAnalysis::draw()
ofSetColor(aColour); ofSetColor(aColour);
ofRect(0, 0, ofGetWidth(), ofGetHeight()); ofRect(0, 0, ofGetWidth(), ofGetHeight());
// cout << "FADE OUT STROBE TIME " << endl; // cout << "FADE OUT STROBE TIME " << endl;
} }
*/ */
ofDisableAlphaBlending(); ofDisableAlphaBlending();
} else { } else {
// _state = STATE_SYNTHESISING; // _state = STATE_SYNTHESISING;
_RUN_DONE = true; _RUN_DONE = true;
} }
_frame_cnt++; _frame_cnt++;
break; break;
} }
case STATE_SYNTHESISING: case STATE_SYNTHESISING:
{ {
// display animation of something while the synthesis in on-going... // display animation of something while the synthesis in on-going...
//cout << "CamNoiseAnalysis = STATE_SYNTHESISING...\n"; //cout << "CamNoiseAnalysis = STATE_SYNTHESISING...\n";
// display animation of something while the synthesis in on-going... // display animation of something while the synthesis in on-going...
ofEnableAlphaBlending(); ofEnableAlphaBlending();
ofSetRectMode(OF_RECTMODE_CENTER); ofSetRectMode(OF_RECTMODE_CENTER);
ofPushMatrix(); ofPushMatrix();
ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
if(_anim_cnt < _anim_cnt_max){ if(_anim_cnt < _anim_cnt_max){
ofColor aColour; ofColor aColour;
int rectSizeW = ofGetWidth()/4; int rectSizeW = ofGetWidth()/4;
int rectSizeH = ofGetHeight()/4; int rectSizeH = ofGetHeight()/4;
int _fade_in_frames = _anim_cnt_max/2; int _fade_in_frames = _anim_cnt_max/2;
int c_anim = 10; int c_anim = 10;
int fade; int fade;
//ofRotate(ofMap(_anim_cnt/2.0, 0, _anim_cnt_max, 0, 360)); //ofRotate(ofMap(_anim_cnt/2.0, 0, _anim_cnt_max, 0, 360));
if (_anim_cnt < _fade_in_frames) { if (_anim_cnt < _fade_in_frames) {
//cout << "CamNoiseAnalysis STATE_SYNTHESIZING = FADING IN ANIMATION...\n"; //cout << "CamNoiseAnalysis STATE_SYNTHESIZING = FADING IN ANIMATION...\n";
fade = ofMap(_anim_cnt, 0, _fade_in_frames, 0, 255); fade = ofMap(_anim_cnt, 0, _fade_in_frames, 0, 255);
for (int i=0; i <= 15; i++){ for (int i=0; i <= 15; i++){
c_anim = 0+17*i; c_anim = 0+17*i;
aColour.set(c_anim, c_anim, c_anim, fade); aColour.set(c_anim, c_anim, c_anim, fade);
ofSetColor(aColour); ofSetColor(aColour);
ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i); ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i);
ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i); ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i);
} }
} }
if (_anim_cnt >= _fade_in_frames && _anim_cnt <= (_anim_cnt_max-_fade_in_frames)){ if (_anim_cnt >= _fade_in_frames && _anim_cnt <= (_anim_cnt_max-_fade_in_frames)){
for (int i=0; i <= 15; i++){ for (int i=0; i <= 15; i++){
c_anim = 255; c_anim = 255;
aColour.set(c_anim, c_anim, c_anim, 255); aColour.set(c_anim, c_anim, c_anim, 255);
ofSetColor(aColour); ofSetColor(aColour);
ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i); ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i);
ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i); ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i);
} }
} }
if (_anim_cnt > (_anim_cnt_max-_fade_in_frames) && _anim_cnt <= _anim_cnt_max) { if (_anim_cnt > (_anim_cnt_max-_fade_in_frames) && _anim_cnt <= _anim_cnt_max) {
//cout << "_anim_cnt = " << _anim_cnt-(_anim_cnt_max-_fade_in_frames) << endl; //cout << "_anim_cnt = " << _anim_cnt-(_anim_cnt_max-_fade_in_frames) << endl;
fade = ofMap(_anim_cnt-(_anim_cnt_max-_fade_in_frames), 0, _fade_in_frames, 0, 255); fade = ofMap(_anim_cnt-(_anim_cnt_max-_fade_in_frames), 0, _fade_in_frames, 0, 255);
//cout << "fade down = " << fade << endl; //cout << "fade down = " << fade << endl;
for (int i=0; i <= 15; i++){ for (int i=0; i <= 15; i++){
c_anim = (17*i); c_anim = (17*i);
aColour.set(c_anim, c_anim, c_anim, 255-fade); aColour.set(c_anim, c_anim, c_anim, 255-fade);
ofSetColor(aColour); ofSetColor(aColour);
ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i); ofRect(0, 0, rectSizeW+10*i, rectSizeH+10*i);
ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i); ofRect(0, 0, rectSizeW-10*i, rectSizeH-10*i);
} }
} }
_anim_cnt++; _anim_cnt++;
} else { } else {
_RUN_DONE = true; _RUN_DONE = true;
//_state = STATE_DISPLAY_RESULTS; //_state = STATE_DISPLAY_RESULTS;
@ -372,46 +380,46 @@ void CamNoiseAnalysis::draw()
ofPopMatrix(); ofPopMatrix();
ofSetRectMode(OF_RECTMODE_CORNER); ofSetRectMode(OF_RECTMODE_CORNER);
ofDisableAlphaBlending(); ofDisableAlphaBlending();
break; break;
} }
case STATE_DISPLAY_RESULTS: case STATE_DISPLAY_RESULTS:
{ {
//cout << "STATE_DISPLAY_RESULTS...\n" << endl; //cout << "STATE_DISPLAY_RESULTS...\n" << endl;
if (_frame_cnt > 2) if (_frame_cnt > 2)
{ {
_image_shown = true; _image_shown = true;
_frame_cnt=0; _frame_cnt=0;
} }
_frame_cnt++; _frame_cnt++;
if (_show_image) if (_show_image)
{ {
//cout << "_show_image...\n" << endl; //cout << "_show_image...\n" << endl;
ofEnableAlphaBlending(); ofEnableAlphaBlending();
ofSetColor(255, 255, 255); ofSetColor(255, 255, 255);
image2.setFromPixels(image3.getPixels(),image3.width,image3.height, OF_IMAGE_COLOR); image2.setFromPixels(image3.getPixels(),image3.width,image3.height, OF_IMAGE_COLOR);
image2.draw(0,0, ofGetWidth(), ofGetHeight()); image2.draw(0,0, ofGetWidth(), ofGetHeight());
ofDisableAlphaBlending(); ofDisableAlphaBlending();
} }
// display results of the synthesis // display results of the synthesis
_RUN_DONE = true; _RUN_DONE = true;
break; break;
} }
default: default:
break; break;
} }
} }
@ -419,8 +427,8 @@ void CamNoiseAnalysis::draw()
void CamNoiseAnalysis::save_cb(Timer& timer) void CamNoiseAnalysis::save_cb(Timer& timer)
{ {
_save_cnt++; _save_cnt++;
string file_name = ofToString(_save_cnt,2)+"_"+ ofToString(c,2)+"_"+ofToString(_run_cnt,2)+".jpg"; string file_name = ofToString(_save_cnt,2)+"_"+ ofToString(c,2)+"_"+ofToString(_run_cnt,2)+".jpg";
saveImageAnalysis(file_name); saveImageAnalysis(file_name);
} }