Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

vetNoiseGenerator.cpp

Go to the documentation of this file.
00001 
00016 #include "vetNoiseGenerator.h"
00017 
00018 #include <stdlib.h>     // rand()
00019 
00020 
00021 
00022 #pragma warning(disable:4065) // warning C4065 @ line 84: switch statement contains 'default' but no 'case' labels
00023 
00024 
00031 vetNoiseGenerator::vetNoiseGenerator(float fps) : vetInput(fps)
00032  {
00033         INFO("vetNoiseGenerator::vetNoiseGenerator(float fps) : vetInput(fps) [CONTRUCTOR]")
00034 
00035         reset();
00036  }
00037 
00045 vetNoiseGenerator::vetNoiseGenerator(RUNMODE runm, float fps) : vetInput(fps)
00046  {
00047         DEBUGMSG("vetNoiseGenerator::vetNoiseGenerator(RUNMODE runm, float fps) : vetInput(fps) [CONTRUCTOR]", runm)
00048 
00049         reset();
00050 
00051         v_runmode = runm;
00052  }
00053 
00059 VETRESULT vetNoiseGenerator::reset()
00060  {
00061         v_runmode = 0;
00062         normalized = false;
00063         normalize_value = 255;
00064         spread = 1.;
00065 
00066         resetNoiseSource();
00067 
00068         return VETRET_OK;
00069  }
00070 
00071 
00075 void vetNoiseGenerator::resetNoiseSource()
00076  {
00077         DEBUGMSG("void vetNoiseGenerator::resetNoiseSource()", v_runmode)
00078 
00079         switch(v_runmode) {
00080 
00081                 default:
00082                                 // initialise random sunber generator
00083                                 time_t t;
00084                                 srand((unsigned) time(&t));
00085                                 break;
00086 
00087          }
00088 
00089  }
00090 
00096 PixelRGB96 vetNoiseGenerator::getRandomPixelRGB96()
00097  {
00098         PixelRGB96 ret;
00099         ret[0] = rand();
00100         ret[1] = rand();
00101         ret[2] = rand();
00102         return ret;
00103  }
00104 
00105 
00112 PixelRGB24 vetNoiseGenerator::getRandomPixelRGB24()
00113  {
00114         PixelRGB24 ret;
00115         ret[0] = (unsigned char)(rand()%255);
00116         ret[1] = (unsigned char)(rand()%255);
00117         ret[2] = (unsigned char)(rand()%255);
00118         return ret;
00119  }
00120 
00121 
00127 PixelHSV vetNoiseGenerator::getRandomPixelHSV()
00128  {
00129         PixelHSV ret;
00130         ret.hue = rand();
00131         ret.val = rand()%255;
00132         ret.sat = rand()%255;
00133         return ret;
00134  }
00135 
00141 PixelGrey vetNoiseGenerator::getRandomPixelGrey()
00142  {
00143         PixelGrey ret;
00144         ret = rand()%255;
00145         return ret;
00146  }
00147 
00148 
00149 
00161 VETRESULT vetNoiseGenerator::extractTo(vetFrameYUV420& img)
00162  {
00163         INFO("VETRESULT vetNoiseGenerator::extractTo(vetFrameYUV420& img) [pushing data]")
00164 
00165         return VETRET_NOT_IMPLEMENTED;
00166  }
00167 
00168 
00180 VETRESULT vetNoiseGenerator::extractTo(vetFrameRGB24& img)
00181  {
00182         INFO("VETRESULT vetNoiseGenerator::extractTo(vetFrameRGB24& img) [pushing data]")
00183 
00184         unsigned int size = img.width * img.height;
00185         unsigned int perc = (unsigned int)( (float)(size) * spread);
00186         unsigned int noiseco;
00187 
00188         if ( normalized )
00189          {
00190                 for ( unsigned int i = 0; i < perc; i++ )
00191                  {
00192                         noiseco = rand()*rand() % size;
00193                         img.data[noiseco][0] = (unsigned char)( rand() % normalize_value);
00194                         noiseco = rand()*rand() % size;
00195                         img.data[noiseco][1] = (unsigned char)( rand() % normalize_value);
00196                         noiseco = rand()*rand() % size;
00197                         img.data[noiseco][2] = (unsigned char)( rand() % normalize_value);
00198                  }
00199          }
00200         else
00201          {
00202                 for ( unsigned int i = 0; i < perc; i++ )
00203                  {
00204                         noiseco = rand()*rand() % size;
00205                         img.data[noiseco][0] = (unsigned char)(rand()%255);
00206                         noiseco = rand()*rand() % size;
00207                         img.data[noiseco][1] = (unsigned char)(rand()%255);
00208                         noiseco = rand()*rand() % size;
00209                         img.data[noiseco][2] = (unsigned char)(rand()%255);
00210                  }
00211          }
00212 
00213         return VETRET_OK;
00214  }
00215 
00216 
00228 VETRESULT vetNoiseGenerator::extractTo(vetFrameT<unsigned char>& img)
00229  {
00230         INFO("VETRESULT vetNoiseGenerator::extractTo(vetFrameT& img) [pushing data]")
00231 
00232         return VETRET_NOT_IMPLEMENTED;
00233  }

Generated on Tue Jan 24 11:59:05 2006 for VETLib by  doxygen 1.4.4