summaryrefslogtreecommitdiff
path: root/tests/yee_compare.h
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2011-12-07 20:36:29 (GMT)
committerMarius Kintel <marius@kintel.net>2011-12-07 20:36:29 (GMT)
commit2e3ea0a64fe4b098bf09c6c09fcf3f63a4849d18 (patch)
tree4b9bf56f11d35d565e4b8f2061d92ec1cd2f7a0a /tests/yee_compare.h
parent577359073769db76d174284f490de96046abb428 (diff)
parentfaae7882e26c048b0ae2bf7a54065d31d0edbc31 (diff)
Merge branch 'cakebaby' of https://github.com/donbright/openscad into donbright-cakebaby
Diffstat (limited to 'tests/yee_compare.h')
-rw-r--r--tests/yee_compare.h126
1 files changed, 0 insertions, 126 deletions
diff --git a/tests/yee_compare.h b/tests/yee_compare.h
deleted file mode 100644
index 041ae4c..0000000
--- a/tests/yee_compare.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef _yee_compare_h
-#define _yee_compare_h
-
-// source code modified for OpenSCAD, Sept 2011
-// original copyright notice follows:
-/*
-Metric
-RGBAImage.h
-Comapre Args
-Laplacian Pyramid
-Copyright (C) 2006 Yangli Hector Yee
-
-This program is free software; you can redistribute it and/or modify it under the terms of the
-GNU General Public License as published by the Free Software Foundation; either version 2 of the License,
-or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with this program;
-if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include <string>
-
-class RGBAImage;
-
-// Args to pass into the comparison function
-class CompareArgs
-{
-public:
- CompareArgs();
- ~CompareArgs();
- bool Parse_Args(int argc, char **argv);
- void Print_Args();
-
- RGBAImage *ImgA; // Image A
- RGBAImage *ImgB; // Image B
- RGBAImage *ImgDiff; // Diff image
- bool Verbose; // Print lots of text or not
- bool LuminanceOnly; // Only consider luminance; ignore chroma channels in the comparison.
- float FieldOfView; // Field of view in degrees
- float Gamma; // The gamma to convert to linear color space
- float Luminance; // the display's luminance
- unsigned int ThresholdPixels; // How many pixels different to ignore
- std::string ErrorStr; // Error string
- // How much color to use in the metric.
- // 0.0 is the same as LuminanceOnly = true,
- // 1.0 means full strength.
- float ColorFactor;
- // How much to down sample image before comparing, in powers of 2.
- int DownSample;
-};
-
-#define MAX_PYR_LEVELS 8
-
-class LPyramid
-{
-public:
- LPyramid(float *image, int width, int height);
- virtual ~LPyramid();
- float Get_Value(int x, int y, int level);
-protected:
- float *Copy(float *img);
- void Convolve(float *a, float *b);
-
- // Succesively blurred versions of the original image
- float *Levels[MAX_PYR_LEVELS];
-
- int Width;
- int Height;
-};
-
-class CompareArgs;
-
-// Image comparison metric using Yee's method
-// References: A Perceptual Metric for Production Testing, Hector Yee, Journal of Graphics Tools 2004
-bool Yee_Compare(CompareArgs &args);
-
-/** Class encapsulating an image containing R,G,B,A channels.
- *
- * Internal representation assumes data is in the ABGR format, with the RGB
- * color channels premultiplied by the alpha value. Premultiplied alpha is
- * often also called "associated alpha" - see the tiff 6 specification for some
- * discussion - http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
- *
- */
-class RGBAImage
-{
- RGBAImage(const RGBAImage&);
- RGBAImage& operator=(const RGBAImage&);
-public:
- RGBAImage(int w, int h, const char *name = 0)
- {
- Width = w;
- Height = h;
- if (name) Name = name;
- Data = new unsigned int[w * h];
- };
- ~RGBAImage() { if (Data) delete[] Data; }
- unsigned char Get_Red(unsigned int i) { return (Data[i] & 0xFF); }
- unsigned char Get_Green(unsigned int i) { return ((Data[i]>>8) & 0xFF); }
- unsigned char Get_Blue(unsigned int i) { return ((Data[i]>>16) & 0xFF); }
- unsigned char Get_Alpha(unsigned int i) { return ((Data[i]>>24) & 0xFF); }
- void Set(unsigned char r, unsigned char g, unsigned char b, unsigned char a, unsigned int i)
- { Data[i] = r | (g << 8) | (b << 16) | (a << 24); }
- int Get_Width(void) const { return Width; }
- int Get_Height(void) const { return Height; }
- void Set(int x, int y, unsigned int d) { Data[x + y * Width] = d; }
- unsigned int Get(int x, int y) const { return Data[x + y * Width]; }
- unsigned int Get(int i) const { return Data[i]; }
- const std::string &Get_Name(void) const { return Name; }
- RGBAImage* DownSample() const;
-
- bool WriteToFile(const char* filename);
- static RGBAImage* ReadFromFile(const char* filename);
-
-protected:
- int Width;
- int Height;
- std::string Name;
- unsigned int *Data;
-};
-
-#endif
contact: Jan Huwald // Impressum