compareImages.cpp 808 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <iostream>
  2. #include <core/image/ImageT.h>
  3. #include <core/basics/Timer.h>
  4. using namespace NICE;
  5. using namespace std;
  6. int main ( int argc, char **argv )
  7. {
  8. if ( argc != 3 ) {
  9. cerr << "usage: " << argv[0] << " <src1> <src2>" << endl;
  10. exit(-1);
  11. }
  12. Image src1 ( argv[1] );
  13. Image src2 ( argv[2] );
  14. if ( (src1.width() != src2.width()) || (src1.height() != src2.height()) ) {
  15. cerr << "Images differ in size!" << endl;
  16. exit(-1);
  17. }
  18. Timer t;
  19. t.start();
  20. double l1error = 0.0;
  21. for ( int y = 0 ; y < src1.height(); y++ )
  22. for ( int x = 0 ; x < src1.width(); x++ )
  23. l1error += abs( src1(x,y) - src2(x,y) );
  24. l1error /= src1.height() * src1.width();
  25. t.stop();
  26. cerr << "Average pixel difference: " << l1error << endl;
  27. cerr << "Time used for comparision: " << t.getLast() << endl;
  28. }