1 /*====================================================================*
2 - Copyright (C) 2001 Leptonica. All rights reserved.
3 -
4 - Redistribution and use in source and binary forms, with or without
5 - modification, are permitted provided that the following conditions
6 - are met:
7 - 1. Redistributions of source code must retain the above copyright
8 - notice, this list of conditions and the following disclaimer.
9 - 2. Redistributions in binary form must reproduce the above
10 - copyright notice, this list of conditions and the following
11 - disclaimer in the documentation and/or other materials
12 - provided with the distribution.
13 -
14 - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15 - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16 - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17 - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
18 - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *====================================================================*/
26
27 /*
28 * fpix2_reg.c
29 *
30 * Regression test for FPix:
31 * - rotation by multiples of 90 degrees
32 * - adding borders of various types
33 */
34
35 #include "allheaders.h"
36
main(int argc,char ** argv)37 int main(int argc,
38 char **argv)
39 {
40 FPIX *fpix1, *fpix2, *fpix3, *fpix4;
41 PIX *pix1, *pix2, *pix3, *pix4, *pix5, *pix6, *pix7, *pix8;
42 L_REGPARAMS *rp;
43
44 if (regTestSetup(argc, argv, &rp))
45 return 1;
46
47 /* Test orthogonal rotations */
48 pix1 = pixRead("marge.jpg");
49 pix2 = pixConvertTo8(pix1, 0);
50 fpix1 = pixConvertToFPix(pix2, 1);
51
52 fpix2 = fpixRotateOrth(fpix1, 1);
53 pix3 = fpixConvertToPix(fpix2, 8, L_CLIP_TO_ZERO, 0);
54 pix4 = pixRotateOrth(pix2, 1);
55 regTestComparePix(rp, pix3, pix4); /* 0 */
56 pixDisplayWithTitle(pix3, 100, 100, NULL, rp->display);
57
58 fpix3 = fpixRotateOrth(fpix1, 2);
59 pix5 = fpixConvertToPix(fpix3, 8, L_CLIP_TO_ZERO, 0);
60 pix6 = pixRotateOrth(pix2, 2);
61 regTestComparePix(rp, pix5, pix6); /* 1 */
62 pixDisplayWithTitle(pix5, 560, 100, NULL, rp->display);
63
64 fpix4 = fpixRotateOrth(fpix1, 3);
65 pix7 = fpixConvertToPix(fpix4, 8, L_CLIP_TO_ZERO, 0);
66 pix8 = pixRotateOrth(pix2, 3);
67 regTestComparePix(rp, pix7, pix8); /* 2 */
68 pixDisplayWithTitle(pix7, 1170, 100, NULL, rp->display);
69 pixDisplayWithTitle(pix2, 560, 580, NULL, rp->display);
70
71 pixDestroy(&pix1);
72 pixDestroy(&pix2);
73 pixDestroy(&pix3);
74 pixDestroy(&pix4);
75 pixDestroy(&pix5);
76 pixDestroy(&pix6);
77 pixDestroy(&pix7);
78 pixDestroy(&pix8);
79 fpixDestroy(&fpix1);
80 fpixDestroy(&fpix2);
81 fpixDestroy(&fpix3);
82 fpixDestroy(&fpix4);
83
84 /* Test adding various borders */
85 pix1 = pixRead("marge.jpg");
86 pix2 = pixConvertTo8(pix1, 0);
87 fpix1 = pixConvertToFPix(pix2, 1);
88
89 fpix2 = fpixAddMirroredBorder(fpix1, 21, 21, 25, 25);
90 pix3 = fpixConvertToPix(fpix2, 8, L_CLIP_TO_ZERO, 0);
91 pix4 = pixAddMirroredBorder(pix2, 21, 21, 25, 25);
92 regTestComparePix(rp, pix3, pix4); /* 3 */
93 pixDisplayWithTitle(pix3, 100, 1000, NULL, rp->display);
94
95 fpix3 = fpixAddContinuedBorder(fpix1, 21, 21, 25, 25);
96 pix5 = fpixConvertToPix(fpix3, 8, L_CLIP_TO_ZERO, 0);
97 pix6 = pixAddContinuedBorder(pix2, 21, 21, 25, 25);
98 regTestComparePix(rp, pix5, pix6); /* 4 */
99 pixDisplayWithTitle(pix5, 750, 1000, NULL, rp->display);
100
101 pixDestroy(&pix1);
102 pixDestroy(&pix2);
103 pixDestroy(&pix3);
104 pixDestroy(&pix4);
105 pixDestroy(&pix5);
106 pixDestroy(&pix6);
107 fpixDestroy(&fpix1);
108 fpixDestroy(&fpix2);
109 fpixDestroy(&fpix3);
110 return regTestCleanup(rp);
111 }
112
113