- Timestamp:
- Nov 28, 2013, 4:10:42 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130904/psLib/src/imageops/psImageConvolve2dCache.c
r36307 r36319 27 27 28 28 // fixed set of radii and number of entries in circularly symmetric profile 29 # define NRAD_MAX 44 30 static float radii2[NRAD_MAX] = { 0.0, 1.0, 2.0, 4.0, 5.0, 31 8.0, 9.0, 10.0, 13.0, 16.0, 32 17.0, 18.0, 20.0, 25.0, 26.0, 33 29.0, 32.0, 34.0, 36.0, 37.0, 34 40.0, 41.0, 45.0, 49.0, 50.0, 35 52.0, 53.0, 58.0, 61.0, 64.0, 36 65.0, 68.0, 72.0, 73.0, 74.0, 37 80.0, 81.0, 82.0, 85.0, 89.0, 38 90.0, 97.0, 98.0, 100.0 29 # define NRAD_MAX 87 30 # define RAD_MAX 15 31 static float radii2[NRAD_MAX] = { 0.0, 1.0, 2.0, 4.0, 5.0, 32 8.0, 9.0, 10.0, 13.0, 16.0, 33 17.0, 18.0, 20.0, 25.0, 26.0, 34 35 29.0, 32.0, 34.0, 36.0, 37.0, 36 40.0, 41.0, 45.0, 49.0, 50.0, 37 52.0, 53.0, 58.0, 61.0, 64.0, 38 39 65.0, 68.0, 72.0, 73.0, 74.0, 40 80.0, 81.0, 82.0, 85.0, 89.0, 41 90.0, 97.0, 98.0, 100.0, 101.0, 42 43 104.0, 106.0, 109.0, 113.0, 116.0, 44 117.0, 121.0, 122.0, 125.0, 128.0, 45 130.0, 136.0, 137.0, 144.0, 145.0, 46 47 146.0, 148.0, 149.0, 153.0, 157.0, 48 160.0, 162.0, 164.0, 169.0, 170.0, 49 173.0, 178.0, 180.0, 181.0, 185.0, 50 51 193.0, 194.0, 196.0, 197.0, 200.0, 52 202.0, 205.0, 208.0, 212.0, 218.0, 53 221.0, 225.0 39 54 }; 40 55 … … 42 57 4, 4, 8, 8, 4, 43 58 8, 4, 8, 12, 8, 59 44 60 8, 4, 8, 4, 8, 45 61 8, 8, 8, 4, 12, 46 62 8, 8, 8, 8, 4, 63 47 64 16, 8, 4, 8, 8, 48 8, 4, 8, 16, 8, 49 8, 8, 4, 12 65 8, 4, 8, 16, 8, 66 8, 8, 4, 12, 8, 67 68 8, 8, 8, 8, 8, 69 8, 4, 8, 16, 4, 70 16, 8, 8, 8, 16, 71 72 8, 8, 8, 8, 8, 73 8, 4, 8, 12, 16, 74 8, 8, 8, 8, 16, 75 76 8, 8, 4, 8, 12, 77 8, 16, 8, 8, 8, 78 16, 12 50 79 }; 51 80 … … 85 114 psImageSmooth2dCacheData *psImageSmooth2dCacheAlloc (float Nsigma) { 86 115 116 psAssert (isfinite(Nsigma) && (Nsigma > 0.5), "Nsigma is not valid"); 117 87 118 psImageSmooth2dCacheData *smdata = psAlloc(sizeof(psImageSmooth2dCacheData)); 88 119 psMemSetDeallocator(smdata, (psFreeFunc) psImageSmooth2dCacheDataFree); … … 100 131 // check for NULL structure elements? 101 132 int Ns = (int)(smdata->Nsigma * sigma); 102 Ns = PS_MAX (3, PS_MIN (Ns, 10));133 Ns = PS_MAX (3, PS_MIN (Ns, RAD_MAX)); 103 134 smdata->Ns = Ns; 104 135 … … 108 139 smdata->radflux = psAlloc(sizeof(float)*NRAD_MAX); 109 140 110 floatsum = 0.0;141 double sum = 0.0; 111 142 for (int i = 0; i < NRAD_MAX; i++) { 112 143 if (radii2[i] > Ns2) { … … 130 161 // check for NULL structure elements? 131 162 int Ns = (int)(smdata->Nsigma * sigma); 132 Ns = PS_MAX (3, PS_MIN (Ns, 10));163 Ns = PS_MAX (3, PS_MIN (Ns, RAD_MAX)); 133 164 smdata->Ns = Ns; 134 165 … … 275 306 if (Ns <= 10) goto finish; 276 307 308 ADD_RAND ( 44, 1, 10); // r^2 = 101 309 ADD_RAND ( 45, 2, 10); // r^2 = 104 310 ADD_RAND ( 46, 5, 9); // r^2 = 106 311 ADD_RAND ( 47, 3, 10); // r^2 = 109 312 ADD_RAND ( 48, 7, 8); // r^2 = 113 313 ADD_RAND ( 49, 4, 10); // r^2 = 116 314 ADD_RAND ( 50, 6, 9); // r^2 = 117 315 ADD_AXIS ( 51, 11) ; // r^2 = 121 316 if (Ns <= 11) goto finish; 317 318 ADD_RAND ( 52, 1, 11); // r^2 = 122 319 ADD_RAND ( 53, 2, 11); // r^2 = 125 * 320 ADD_RAND ( 53, 5, 10); // r^2 = 125 * 321 ADD_DIAG ( 54, 8) ; // r^2 = 128 322 ADD_RAND ( 55, 3, 11); // r^2 = 130 * 323 ADD_RAND ( 55, 7, 9); // r^2 = 130 * 324 ADD_RAND ( 56, 6, 10); // r^2 = 136 325 ADD_RAND ( 57, 4, 11); // r^2 = 137 326 ADD_AXIS ( 58, 12) ; // r^2 = 144 327 if (Ns <= 12) goto finish; 328 329 ADD_RAND ( 59, 1, 12); // r^2 = 145 * 330 ADD_RAND ( 59, 8, 9); // r^2 = 145 * 331 ADD_RAND ( 60, 5, 11); // r^2 = 146 332 ADD_RAND ( 61, 2, 12); // r^2 = 148 333 ADD_RAND ( 62, 7, 10); // r^2 = 149 334 ADD_RAND ( 63, 3, 12); // r^2 = 153 335 ADD_RAND ( 64, 6, 11); // r^2 = 157 336 ADD_RAND ( 65, 4, 12); // r^2 = 160 337 ADD_DIAG ( 66, 9) ; // r^2 = 162 338 ADD_RAND ( 67, 8, 10); // r^2 = 164 339 ADD_RAND ( 68, 5, 12); // r^2 = 169 * 340 ADD_AXIS ( 68, 13) ; // r^2 = 169 * 341 if (Ns <= 13) goto finish; 342 343 ADD_RAND ( 69, 1, 13); // r^2 = 170 * 344 ADD_RAND ( 69, 7, 11); // r^2 = 170 * 345 ADD_RAND ( 70, 2, 13); // r^2 = 173 346 ADD_RAND ( 71, 3, 13); // r^2 = 178 347 ADD_RAND ( 72, 6, 12); // r^2 = 180 348 ADD_RAND ( 73, 9, 10); // r^2 = 181 349 ADD_RAND ( 74, 4, 13); // r^2 = 185 * 350 ADD_RAND ( 74, 8, 11); // r^2 = 185 * 351 ADD_RAND ( 75, 7, 12); // r^2 = 193 352 ADD_RAND ( 76, 5, 13); // r^2 = 194 353 ADD_AXIS ( 77, 14) ; // r^2 = 196 354 if (Ns <= 14) goto finish; 355 356 ADD_RAND ( 78, 1, 14); // r^2 = 197 357 ADD_DIAG ( 79, 10) ; // r^2 = 200 * 358 ADD_RAND ( 79, 2, 14); // r^2 = 200 * 359 ADD_RAND ( 80, 9, 11); // r^2 = 202 360 ADD_RAND ( 81, 3, 14); // r^2 = 205 * 361 ADD_RAND ( 81, 6, 13); // r^2 = 205 * 362 ADD_RAND ( 82, 8, 12); // r^2 = 208 363 ADD_RAND ( 83, 4, 14); // r^2 = 212 364 ADD_RAND ( 84, 7, 13); // r^2 = 218 365 ADD_RAND ( 85, 10, 11); // r^2 = 221 * 366 ADD_RAND ( 85, 5, 14); // r^2 = 221 * 367 ADD_RAND ( 86, 9, 12); // r^2 = 225 * 368 ADD_AXIS ( 86, 15); // r^2 = 225 * 369 if (Ns <= 15) goto finish; 370 277 371 finish: 278 372 vo[iy][ix] = s; … … 298 392 } 299 393 394 /* 395 101, 104, 106, 109, 113, 396 116, 117, 121, 122, 125, 397 128, 130, 136, 137, 144, 398 145, 146, 148, 149, 153, 399 157, 160, 162, 164, 169, 400 170, 173, 178, 180, 181, 401 185, 193, 194, 196, 197, 402 200, 202, 205, 208, 212, 403 218, 221, 225 404 */ 405
Note:
See TracChangeset
for help on using the changeset viewer.
