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 }
1.4.4