ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/CV.xs
(Generate patch)

Comparing CV/CV.xs (file contents):
Revision 1.33 by root, Fri Feb 17 08:48:06 2006 UTC vs.
Revision 1.34 by root, Tue Mar 7 16:26:25 2006 UTC

355 assert (gdk_pixbuf_get_n_channels (b) == 3); 355 assert (gdk_pixbuf_get_n_channels (b) == 3);
356 356
357 double diff = 0.; 357 double diff = 0.;
358 int peak = 0; 358 int peak = 0;
359 359
360 if (x && y)
360 for (y = 0; y < h; y++) 361 for (y = 0; y < h; y++)
361 { 362 {
362 guchar *pa_ = pa + y * sa; 363 guchar *pa_ = pa + y * sa;
363 guchar *pb_ = pb + y * sb; 364 guchar *pb_ = pb + y * sb;
364 365
365 for (x = 0; x < w; x ++) 366 for (x = 0; x < w; x++)
366 { 367 {
367 int d; 368 int d;
368 369
369 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d)); 370 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d));
370 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d)); 371 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d));
371 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d)); 372 d = ((int)*pa_++) - ((int)*pb_++); diff += d*d; peak = MAX (peak, abs (d));
372 } 373 }
373 } 374 }
374 375
375 EXTEND (SP, 2); 376 EXTEND (SP, 2);
376 PUSHs (sv_2mortal (newSVnv (sqrt (diff / (w * h * 3. * 255. * 255.))))); 377 PUSHs (sv_2mortal (newSVnv (sqrt (diff / (w * h * 3. * 255. * 255.)))));
377 PUSHs (sv_2mortal (newSVnv (peak / 255.))); 378 PUSHs (sv_2mortal (newSVnv (peak / 255.)));
378} 379}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines