[Wavelet-commit] Wavelet/tools ppmlq.cc, NONE, 1.1 Makefile.in, 1.8, 1.9 Makefile.msc, 1.7, 1.8 Mak
Status: Beta
Brought to you by:
herbert
From: Herbert M. D. <he...@us...> - 2009-06-19 14:46:50
|
Update of /cvsroot/wavelet/Wavelet/tools In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv4434/tools Modified Files: Makefile.in Makefile.msc Makefile.watcomc Added Files: ppmlq.cc Log Message: added additional CLI tool ppmlq, added some more static methods to ImageComparison --- NEW FILE: ppmlq.cc --- /* * Calculate L^q distance on two colour images * * $Date: 2009/06/19 13:46:09 $ * $Revision: 1.1 $ * */ #include <WTools.hh> #include <cmath> #include <iomanip> #if !(defined __WATCOMC__ && __WATCOMC__ < 1230) using namespace std; #endif #define ROWS 128 #define COLS 128 #define KEPT 40 int main (int argc, char *argv[]) { if (argc != 3) { std::cerr << "Usage: ppmlq <file1> <file2>" << std::endl; return 1; } std::cout << "pgmcompare version " << WAVE_VERSION << " (c) 2001-2009 by Herbert" #ifdef PFI << " (pfi support enabled)" #endif << std::endl; ColorImage img1, img2; try { img1.read (argv[1]); } catch (const std::exception &e) { std::cerr << "Could not open first image for reading: " << argv[1] << ", " << e.what () << std::endl; return 1; } try { img2.read (argv[2]); } catch (const std::exception &e) { std::cerr << "Could not open second image for reading: " << argv[2] << ", " << e.what () << std::endl; return 2; } if (img1.colors () != img2.colors ()) { std::cerr << "Error, inconsisten number of colours: " << img1.colors () << " vs. " << img2.colors () << std::endl; return 1; } if (img1.colors () != 3 && img1.colors () != 1) { std::cerr << "Error, invalid number of colours: " << img1.colors () << " must be 1 or 3." << std::endl; return 1; } ColorImage *scaled1 = img1.fitInto (ROWS, COLS, ef_outerBorder); ColorImage *scaled2 = img2.fitInto (ROWS, COLS, ef_outerBorder); if (scaled1->colors () == 3) { scaled1->colormodel (cm_yuv); scaled2->colormodel (cm_yuv); } double detailScore = 0; double averageScore = 0; for (int i = 0; i < scaled1->colors (); ++i) { Image *c1 = ImageComparison::truncateForLq (scaled1->channel (i), KEPT, Haar); Image *c2 = ImageComparison::truncateForLq (scaled2->channel (i), KEPT, Haar); averageScore += ImageComparison::calcLqAverageScore (*c1, *c2, i); detailScore += ImageComparison::calcLqDetailScore (*c1, *c2, i); DELETE (c1); DELETE (c2); } DELETE (scaled1); DELETE (scaled2); std::cout.setf (std::ios::fixed, std::ios::floatfield); std::cout << "L^q: " << std::setprecision (5) << std::setw (11) << detailScore + averageScore << ", avg: " << std::setprecision (5) << std::setw (11) << averageScore << ", detail: " << std::setprecision (5) << std::setw (11) << detailScore << endl; return 0; } Index: Makefile.msc =================================================================== RCS file: /cvsroot/wavelet/Wavelet/tools/Makefile.msc,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile.msc 9 Dec 2004 19:15:02 -0000 1.7 --- Makefile.msc 19 Jun 2009 13:46:09 -0000 1.8 *************** *** 27,34 **** OBJS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O \ pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O \ ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O PROGRAMS = ppm2grey$E waveppm$E wavepgm$E pgmdiff$E pgmcompare$E pgmdenoise$E \ pgminmax$E pgmpixel$E pgmstats$E pgmhist$E pgmcount$E pgmscale$E \ ! vid2pgm$E video2grey$E imgconvert$E pgmequalize$E # --- 27,34 ---- OBJS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O \ pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O \ ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O ppmlq$O PROGRAMS = ppm2grey$E waveppm$E wavepgm$E pgmdiff$E pgmcompare$E pgmdenoise$E \ pgminmax$E pgmpixel$E pgmstats$E pgmhist$E pgmcount$E pgmscale$E \ ! vid2pgm$E video2grey$E imgconvert$E pgmequalize$E ppmlq$E # *************** *** 60,63 **** --- 60,64 ---- pgmdiff$E: pgmdiff$O pgmcompare$E: pgmcompare$O + ppmlq$E: ppmlq$O pgminmax$E: pgminmax$O pgmpixel$E: pgmpixel$O Index: Makefile.in =================================================================== RCS file: /cvsroot/wavelet/Wavelet/tools/Makefile.in,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile.in 17 Apr 2008 07:27:36 -0000 1.8 --- Makefile.in 19 Jun 2009 13:46:07 -0000 1.9 *************** *** 44,48 **** OBJS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O \ pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O \ ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O PROGRAMS = $(OBJS:$O=$E) DEPENDS = $(OBJS:$O=.dd) --- 44,48 ---- OBJS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O \ pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O \ ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O ppmlq$O PROGRAMS = $(OBJS:$O=$E) DEPENDS = $(OBJS:$O=.dd) *************** *** 89,92 **** --- 89,95 ---- $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) + ppmlq$E: ppmlq$O + $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) + pgmcompare$E: pgmcompare$O $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) Index: Makefile.watcomc =================================================================== RCS file: /cvsroot/wavelet/Wavelet/tools/Makefile.watcomc,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Makefile.watcomc 25 Mar 2005 09:55:48 -0000 1.9 --- Makefile.watcomc 19 Jun 2009 13:46:09 -0000 1.10 *************** *** 4,11 **** PROGRAMS = ppm2grey$E waveppm$E wavepgm$E pgmdiff$E pgmcompare$E pgmdenoise$E & pgminmax$E pgmpixel$E pgmstats$E pgmhist$E pgmcount$E pgmscale$E & ! vid2pgm$E video2grey$E imgconvert$E pgmequalize$E OBJECTS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O & pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O & ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O pgmnorm$O CPPFLAGS = -i=.. -i=..\..\pfi -dDPRINTF="" -dPFI -dJPEG --- 4,11 ---- PROGRAMS = ppm2grey$E waveppm$E wavepgm$E pgmdiff$E pgmcompare$E pgmdenoise$E & pgminmax$E pgmpixel$E pgmstats$E pgmhist$E pgmcount$E pgmscale$E & ! vid2pgm$E video2grey$E imgconvert$E pgmequalize$E ppmlq$E OBJECTS = ppm2grey$O waveppm$O wavepgm$O pgmdiff$O pgmcompare$O pgmdenoise$O & pgminmax$O pgmpixel$O pgmstats$O pgmhist$O pgmcount$O pgmscale$O & ! vid2pgm$O video2grey$O imgconvert$O pgmequalize$O pgmnorm$O ppmlq$O CPPFLAGS = -i=.. -i=..\..\pfi -dDPRINTF="" -dPFI -dJPEG |