Leptonica  1.83.1
Image processing and image analysis suite
pix.h
Go to the documentation of this file.
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 #ifndef LEPTONICA_PIX_H
28 #define LEPTONICA_PIX_H
29 
224 /*-------------------------------------------------------------------------*
225  * Basic Pix *
226  *-------------------------------------------------------------------------*/
228 typedef struct Pix PIX;
229 
231 typedef struct PixColormap PIXCMAP;
232 
237 typedef struct RGBA_Quad RGBA_QUAD;
238 
239 /*-------------------------------------------------------------------------*
240  * Pix arrays *
241  *-------------------------------------------------------------------------*/
243 typedef struct Pixa PIXA;
244 
246 typedef struct Pixaa PIXAA;
247 
248 /*-------------------------------------------------------------------------*
249  * Basic rectangle and rectangle arrays *
250  *-------------------------------------------------------------------------*/
252 typedef struct Box BOX;
253 
255 typedef struct Boxa BOXA;
256 
258 typedef struct Boxaa BOXAA;
259 
260 /*-------------------------------------------------------------------------*
261  * Arrays of points *
262  *-------------------------------------------------------------------------*/
264 typedef struct Pta PTA;
265 
267 typedef struct Ptaa PTAA;
268 
269 /*-------------------------------------------------------------------------*
270  * Pix accumulator container *
271  *-------------------------------------------------------------------------*/
273 typedef struct Pixacc PIXACC;
274 
275 /*-------------------------------------------------------------------------*
276  * Pix tiling *
277  *-------------------------------------------------------------------------*/
279 typedef struct PixTiling PIXTILING;
280 
281 /*-------------------------------------------------------------------------*
282  * FPix: pix with float array *
283  *-------------------------------------------------------------------------*/
285 typedef struct FPix FPIX;
286 
288 typedef struct FPixa FPIXA;
289 
290 /*-------------------------------------------------------------------------*
291  * DPix: pix with double array *
292  *-------------------------------------------------------------------------*/
294 typedef struct DPix DPIX;
295 
296 /*-------------------------------------------------------------------------*
297  * Compressed pix and arrays *
298  *-------------------------------------------------------------------------*/
300 typedef struct PixComp PIXC;
301 
303 typedef struct PixaComp PIXAC;
304 
305 
306 
307 /*-------------------------------------------------------------------------*
308  * Colors for 32 RGBA *
309  *-------------------------------------------------------------------------*/
310 /* <pre>
311  * Notes:
312  * (1) These are the byte indices for colors in 32 bpp images.
313  * They are used through the GET/SET_DATA_BYTE accessors.
314  * The 4th byte, typically known as the "alpha channel" and used
315  * for blending, is used to a small extent in leptonica.
316  * (2) Do not change these values! If you redefine them, functions
317  * that have the shifts hardcoded for efficiency and conciseness
318  * (instead of using the constants below) will break. These
319  * functions are labelled with "***" next to their names at
320  * the top of the files in which they are defined.
321  * (3) The shifts to extract the red, green, blue and alpha components
322  * from a 32 bit pixel are defined here.
323  * </pre>
324  */
325 
327 enum {
328  COLOR_RED = 0,
331  L_ALPHA_CHANNEL = 3
332 };
333 
334 static const l_int32 L_RED_SHIFT =
335  8 * (sizeof(l_uint32) - 1 - COLOR_RED); /* 24 */
336 static const l_int32 L_GREEN_SHIFT =
337  8 * (sizeof(l_uint32) - 1 - COLOR_GREEN); /* 16 */
338 static const l_int32 L_BLUE_SHIFT =
339  8 * (sizeof(l_uint32) - 1 - COLOR_BLUE); /* 8 */
340 static const l_int32 L_ALPHA_SHIFT =
341  8 * (sizeof(l_uint32) - 1 - L_ALPHA_CHANNEL); /* 0 */
342 
343 
344 /*-------------------------------------------------------------------------*
345  * Colors for drawing boxes *
346  *-------------------------------------------------------------------------*/
348 enum {
354  L_DRAW_RANDOM = 5
355 };
356 
357 
358 /*-------------------------------------------------------------------------*
359  * Perceptual color weights *
360  *-------------------------------------------------------------------------*/
361 /* <pre>
362  * Notes:
363  * (1) These perceptual weighting factors are ad-hoc, but they do
364  * add up to 1. Unlike, for example, the weighting factors for
365  * converting RGB to luminance, or more specifically to Y in the
366  * YUV colorspace. Those numbers come from the
367  * International Telecommunications Union, via ITU-R.
368  * </pre>
369  */
370 static const l_float32 L_RED_WEIGHT = 0.3f;
371 static const l_float32 L_GREEN_WEIGHT = 0.5f;
372 static const l_float32 L_BLUE_WEIGHT = 0.2f;
375 /*-------------------------------------------------------------------------*
376  * Flags for colormap conversion *
377  *-------------------------------------------------------------------------*/
379 enum {
385 };
386 
387 
388 /*------------------------------------------------------------------------*
389  *!
390  * <pre>
391  * The following operation bit flags have been modified from Sun's
392  * original "bitblt" (bit block transfer) operations (from the 1980s).
393  *
394  * The 'op' in 'rasterop' is represented by an integer
395  * composed with Boolean functions using the set of five integers
396  * given below. The integers, and the op codes resulting from
397  * boolean expressions on them, need only be in the range from 0 to 15.
398  * The function is applied on a per-pixel basis.
399  *
400  * Examples: the op code representing ORing the src and dest
401  * is computed using the bit OR, as PIX_SRC | PIX_DST; the op
402  * code representing XORing src and dest is found from
403  * PIX_SRC ^ PIX_DST; the op code representing ANDing src and dest
404  * is found from PIX_SRC & PIX_DST. Note that
405  * PIX_NOT(PIX_CLR) = PIX_SET, and v.v., as they must be.
406  *
407  * We use the following set of definitions:
408  *
409  * #define PIX_SRC 0xc
410  * #define PIX_DST 0xa
411  * #define PIX_NOT(op) (op) ^ 0xf
412  * #define PIX_CLR 0x0
413  * #define PIX_SET 0xf
414  *
415  * [These definitions differ from Sun's, in that Sun left-shifted
416  * each value by 1 pixel, and used the least significant bit as a
417  * flag for the "pseudo-operation" of clipping. We don't need
418  * this bit, because it is both efficient and safe ALWAYS to clip
419  * the rectangles to the src and dest images, which is what we do.
420  * See the notes in rop.h on the general choice of these bit flags.]
421  *
422  * Here are the 16 unique op flags:
423  *
424  * PIX_CLR 0000 0x0
425  * PIX_SET 1111 0xf
426  * PIX_SRC 1100 0xc
427  * PIX_DST 1010 0xa
428  * PIX_NOT(PIX_SRC) 0011 0x3
429  * PIX_NOT(PIX_DST) 0101 0x5
430  * PIX_SRC | PIX_DST 1110 0xe
431  * PIX_SRC & PIX_DST 1000 0x8
432  * PIX_SRC ^ PIX_DST 0110 0x6
433  * PIX_NOT(PIX_SRC) | PIX_DST 1011 0xb
434  * PIX_NOT(PIX_SRC) & PIX_DST 0010 0x2
435  * PIX_SRC | PIX_NOT(PIX_DST) 1101 0xd
436  * PIX_SRC & PIX_NOT(PIX_DST) 0100 0x4
437  * PIX_NOT(PIX_SRC | PIX_DST) 0001 0x1
438  * PIX_NOT(PIX_SRC & PIX_DST) 0111 0x7
439  * PIX_NOT(PIX_SRC ^ PIX_DST) 1001 0x9
440  *
441  * </pre>
442  *-------------------------------------------------------------------------*/
443 
444 #define PIX_SRC (0xc)
445 #define PIX_DST (0xa)
446 #define PIX_NOT(op) ((op) ^ 0x0f)
447 #define PIX_CLR (0x0)
448 #define PIX_SET (0xf)
450 #define PIX_PAINT (PIX_SRC | PIX_DST)
451 #define PIX_MASK (PIX_SRC & PIX_DST)
452 #define PIX_SUBTRACT (PIX_DST & PIX_NOT(PIX_SRC))
454 #define PIX_XOR (PIX_SRC ^ PIX_DST)
457 /*-------------------------------------------------------------------------*
458  * Access and storage flags *
459  *-------------------------------------------------------------------------*/
460 /*
461  * <pre>
462  * For Pix, Box, Pta and Numa, there are 3 standard methods for handling
463  * the retrieval or insertion of a struct:
464  * (1) direct insertion (Don't do this if there is another handle
465  * somewhere to this same struct!)
466  * (2) copy (Always safe, sets up a refcount of 1 on the new object.
467  * Can be undesirable if very large, such as an image or
468  * an array of images.)
469  * (3) clone (Makes another handle to the same struct, and bumps the
470  * refcount up by 1. OK to use except in two situations:
471  * (a) You change data through one of the handles but don't
472  * want those changes to be seen by the other handle.
473  * (b) The application is multi-threaded. Because the clone
474  * operation is not atomic (e.g., locked with a mutex),
475  * it is possible to end up with an incorrect ref count,
476  * causing either a memory leak or a crash.
477  *
478  * For Pixa and Boxa, which are structs that hold an array of clonable
479  * structs, there is an additional method:
480  * (4) copy-clone (Makes a new higher-level struct with a refcount
481  * of 1, but clones all the structs in the array.)
482  *
483  * Unlike the other structs, when retrieving a string from an Sarray,
484  * you are allowed to get a handle without a copy or clone (i.e., the
485  * string is not owned by the handle). You must not either free the string
486  * or insert it in some other struct that would own it. Specifically,
487  * for an Sarray, the copyflag for retrieval is either:
488  * L_COPY or L_NOCOPY
489  * and for insertion, the copyflag is either:
490  * L_COPY or one of {L_INSERT , L_NOCOPY} (the latter are equivalent
491  * for insertion))
492  * Typical patterns are:
493  * (1) Reference a string in an Sarray with L_NOCOPY and insert a copy
494  * of it in another Sarray with L_COPY.
495  * (2) Copy a string from an Sarray with L_COPY and insert it in
496  * another Sarray with L_INSERT (or L_NOCOPY).
497  * In both cases, a copy is made and both Sarrays own their instance
498  * of that string.
499  * </pre>
500  */
502 enum {
503  L_NOCOPY = 0,
505  L_COPY = 1,
506  L_CLONE = 2,
507  L_COPY_CLONE = 3
509 };
510 
511 /*----------------------------------------------------------------------------*
512  * Sort flags *
513  *----------------------------------------------------------------------------*/
515 enum {
517  L_BIN_SORT = 2
518 };
519 
521 enum {
523  L_SORT_DECREASING = 2
524 };
525 
527 enum {
539 };
540 
541 /*---------------------------------------------------------------------------*
542  * Blend flags *
543  *---------------------------------------------------------------------------*/
545 enum {
552 };
553 
555 enum {
557  L_PAINT_DARK = 2
558 };
559 
560 /*-------------------------------------------------------------------------*
561  * Graphics pixel setting *
562  *-------------------------------------------------------------------------*/
564 enum {
567  L_FLIP_PIXELS = 3
568 };
569 
570 /*-------------------------------------------------------------------------*
571  * Size and location filter flags *
572  *-------------------------------------------------------------------------*/
574 enum {
578  L_SELECT_IF_GTE = 4
579 };
580 
582 enum {
589 };
590 
592 enum {
597  L_SELECT_IF_EITHER = 5,
599  L_SELECT_IF_BOTH = 6
601 };
602 
604 enum {
607  L_CHECK_BOTH = 3
608 };
609 
610 /*-------------------------------------------------------------------------*
611  * Color component selection flags *
612  *-------------------------------------------------------------------------*/
614 enum {
623  L_SELECT_WEIGHTED = 9
624 };
625 
626 /*-------------------------------------------------------------------------*
627  * Color content flags *
628  *-------------------------------------------------------------------------*/
630 enum {
633  L_MAX_DIFF = 3
634 };
635 
636 /*-------------------------------------------------------------------------*
637  * 16-bit conversion flags *
638  *-------------------------------------------------------------------------*/
640 enum {
641  L_LS_BYTE = 1,
642  L_MS_BYTE = 2,
647  L_CLIP_TO_FFFF = 7
648 };
649 
650 /*-------------------------------------------------------------------------*
651  * Rotate and shear flags *
652  *-------------------------------------------------------------------------*/
654 enum {
657  L_ROTATE_SAMPLING = 3
658 };
659 
661 enum {
663  L_BRING_IN_BLACK = 2
664 };
665 
667 enum {
670 };
671 
672 /*-------------------------------------------------------------------------*
673  * Affine transform order flags *
674  *-------------------------------------------------------------------------*/
676 enum {
682  L_SC_TR_RO = 6
683 };
684 
685 /*-------------------------------------------------------------------------*
686  * Grayscale filling flags *
687  *-------------------------------------------------------------------------*/
689 enum {
691  L_FILL_BLACK = 2
692 };
693 
694 /*-------------------------------------------------------------------------*
695  * Flags for setting to white or black *
696  *-------------------------------------------------------------------------*/
698 enum {
700  L_SET_BLACK = 2
701 };
702 
703 /*-------------------------------------------------------------------------*
704  * Flags for getting white or black value *
705  *-------------------------------------------------------------------------*/
707 enum {
709  L_GET_BLACK_VAL = 2
710 };
711 
712 /*-------------------------------------------------------------------------*
713  * Flags for 8 bit and 16 bit pixel sums *
714  *-------------------------------------------------------------------------*/
716 enum {
718  L_BLACK_IS_MAX = 2
719 };
720 
721 /*-------------------------------------------------------------------------*
722  * Dither parameters *
723  * If within this grayscale distance from black or white, *
724  * do not propagate excess or deficit to neighboring pixels. *
725  *-------------------------------------------------------------------------*/
727 enum {
732 };
733 
734 /*-------------------------------------------------------------------------*
735  * Distance type flags *
736  *-------------------------------------------------------------------------*/
738 enum {
741 };
742 
743 /*-------------------------------------------------------------------------*
744  * Distance Value flags *
745  *-------------------------------------------------------------------------*/
747 enum {
752  L_ZERO = 5,
753  L_ALL = 6
754 };
755 
756 /*-------------------------------------------------------------------------*
757  * Statistical measures *
758  *-------------------------------------------------------------------------*/
760 enum {
767  L_VARIANCE = 7
768 };
769 
770 /*-------------------------------------------------------------------------*
771  * Set index selection flags *
772  *-------------------------------------------------------------------------*/
774 enum {
776  L_CHOOSE_SKIP_BY = 2
777 };
778 
779 /*-------------------------------------------------------------------------*
780  * Text orientation flags *
781  *-------------------------------------------------------------------------*/
783 enum {
789 };
790 
791 /*-------------------------------------------------------------------------*
792  * Edge orientation flags *
793  *-------------------------------------------------------------------------*/
795 enum {
798  L_ALL_EDGES = 2
799 };
800 
801 /*-------------------------------------------------------------------------*
802  * Line orientation flags *
803  *-------------------------------------------------------------------------*/
805 enum {
810  L_OBLIQUE_LINE = 4
811 };
812 
813 /*-------------------------------------------------------------------------*
814  * Image orientation flags *
815  *-------------------------------------------------------------------------*/
817 enum {
819  L_LANDSCAPE_MODE = 1
820 };
821 
822 /*-------------------------------------------------------------------------*
823  * Scan direction flags *
824  *-------------------------------------------------------------------------*/
826 enum {
835  L_SCAN_VERTICAL = 8
836 };
837 
838 /*-------------------------------------------------------------------------*
839  * Box size adjustment and location flags *
840  *-------------------------------------------------------------------------*/
842 enum {
853  L_SET_RIGHT = 10,
854  L_SET_TOP = 11,
855  L_SET_BOT = 12,
856  L_GET_LEFT = 13,
857  L_GET_RIGHT = 14,
858  L_GET_TOP = 15,
859  L_GET_BOT = 16
860 };
861 
862 /*-------------------------------------------------------------------------*
863  * Flags for modifying box boundaries using a second box *
864  *-------------------------------------------------------------------------*/
866 enum {
872  L_USE_CAPPED_MAX = 6
873 };
874 
875 /*-------------------------------------------------------------------------*
876  * Handling overlapping bounding boxes in boxa *
877  *-------------------------------------------------------------------------*/
879 enum {
880  L_COMBINE = 1,
881  L_REMOVE_SMALL = 2
882 };
883 
884 /*-------------------------------------------------------------------------*
885  * Selecting or making a box from two (intersecting) boxes *
886  *-------------------------------------------------------------------------*/
888 enum {
892  L_SMALLEST_AREA = 4
893 };
894 
895 /*-------------------------------------------------------------------------*
896  * Flags for replacing invalid boxes *
897  *-------------------------------------------------------------------------*/
899 enum {
902 };
903 
904 /*-------------------------------------------------------------------------*
905  * Flags for box corners and center *
906  *-------------------------------------------------------------------------*/
908 enum {
913  L_BOX_CENTER = 5
914 };
915 
916 /*-------------------------------------------------------------------------*
917  * Horizontal warp *
918  *-------------------------------------------------------------------------*/
920 enum {
922  L_WARP_TO_RIGHT = 2
923 };
924 
926 enum {
928  L_QUADRATIC_WARP = 2
929 };
930 
931 /*-------------------------------------------------------------------------*
932  * Pixel selection for resampling *
933  *-------------------------------------------------------------------------*/
935 enum {
937  L_SAMPLED = 2
938 };
939 
940 /*-------------------------------------------------------------------------*
941  * Thinning flags *
942  *-------------------------------------------------------------------------*/
944 enum {
945  L_THIN_FG = 1,
946  L_THIN_BG = 2
947 };
948 
949 /*-------------------------------------------------------------------------*
950  * Runlength flags *
951  *-------------------------------------------------------------------------*/
953 enum {
955  L_VERTICAL_RUNS = 1
956 };
957 
958 /*-------------------------------------------------------------------------*
959  * Edge filter flags *
960  *-------------------------------------------------------------------------*/
962 enum {
964  L_TWO_SIDED_EDGE = 2
965 };
966 
967 /*-------------------------------------------------------------------------*
968  * Subpixel color component ordering in LCD display *
969  *-------------------------------------------------------------------------*/
971 enum {
976 };
977 
978 /*-------------------------------------------------------------------------*
979  * HSV histogram flags *
980  *-------------------------------------------------------------------------*/
982 enum {
985  L_SV_HISTO = 3
986 };
987 
988 /*-------------------------------------------------------------------------*
989  * HSV Region flags (inclusion, exclusion) *
990  *-------------------------------------------------------------------------*/
992 enum {
994  L_EXCLUDE_REGION = 2
995 };
996 
997 /*-------------------------------------------------------------------------*
998  * Location flags for adding text to a pix *
999  *-------------------------------------------------------------------------*/
1001 enum {
1009  L_ADD_AT_RIGHT = 8
1010 };
1011 
1012 /*-------------------------------------------------------------------------*
1013  * Flags for plotting on a pix *
1014  *-------------------------------------------------------------------------*/
1016 enum {
1022  L_PLOT_AT_RIGHT = 6
1023 };
1024 
1025 /*-------------------------------------------------------------------------*
1026  * Flags for making simple masks *
1027  *-------------------------------------------------------------------------*/
1029 enum {
1031  L_USE_OUTER = 2
1032 };
1033 
1034 /*-------------------------------------------------------------------------*
1035  * Flags for selecting display program *
1036  *-------------------------------------------------------------------------*/
1038 enum {
1043  L_DISPLAY_WITH_OPEN = 5
1044 };
1045 
1046 /*-------------------------------------------------------------------------*
1047  * Flag(s) used in the 'special' pix field for non-default operations *
1048  * - 0 is default for chroma sampling in jpeg *
1049  * - 10-19 are used for zlib compression in png write *
1050  * - 4 and 8 are used for specifying connectivity in labelling *
1051  *-------------------------------------------------------------------------*/
1053 enum {
1055 };
1056 
1057 /*-------------------------------------------------------------------------*
1058  * Handling negative values in conversion to unsigned int *
1059  *-------------------------------------------------------------------------*/
1061 enum {
1063  L_TAKE_ABSVAL = 2
1064 };
1065 
1066 /*-------------------------------------------------------------------------*
1067  * Relative to zero flags *
1068  *-------------------------------------------------------------------------*/
1070 enum {
1073  L_GREATER_THAN_ZERO = 3
1074 };
1075 
1076 /*-------------------------------------------------------------------------*
1077  * Flags for adding or removing trailing slash from string *
1078  *-------------------------------------------------------------------------*/
1080 enum {
1083 };
1084 
1085 /*-------------------------------------------------------------------------*
1086  * Pix allocator and deallocator function types *
1087  *-------------------------------------------------------------------------*/
1089 typedef void *(*alloc_fn)(size_t);
1090 
1092 typedef void (*dealloc_fn)(void *);
1093 
1094 #endif /* LEPTONICA_PIX_H */
static const l_float32 L_BLUE_WEIGHT
Definition: pix.h:372
@ L_DRAW_RANDOM
Definition: pix.h:354
@ L_DRAW_RED
Definition: pix.h:349
@ L_DRAW_RGB
Definition: pix.h:353
@ L_DRAW_BLUE
Definition: pix.h:351
@ L_DRAW_GREEN
Definition: pix.h:350
@ L_DRAW_SPECIFIED
Definition: pix.h:352
void(* dealloc_fn)(void *)
Definition: pix.h:1092
@ COLOR_BLUE
Definition: pix.h:330
@ COLOR_RED
Definition: pix.h:328
@ L_ALPHA_CHANNEL
Definition: pix.h:331
@ COLOR_GREEN
Definition: pix.h:329
@ L_USE_SAME_PARITY_BOXES
Definition: pix.h:901
@ L_USE_ALL_BOXES
Definition: pix.h:900
@ L_SELECT_MAX
Definition: pix.h:619
@ L_SELECT_GREEN
Definition: pix.h:616
@ L_SELECT_SATURATION
Definition: pix.h:622
@ L_SELECT_BLUE
Definition: pix.h:617
@ L_SELECT_AVERAGE
Definition: pix.h:620
@ L_SELECT_MIN
Definition: pix.h:618
@ L_SELECT_HUE
Definition: pix.h:621
@ L_SELECT_WEIGHTED
Definition: pix.h:623
@ L_SELECT_RED
Definition: pix.h:615
@ L_FLIP_PIXELS
Definition: pix.h:567
@ L_SET_PIXELS
Definition: pix.h:565
@ L_CLEAR_PIXELS
Definition: pix.h:566
@ L_HS_HISTO
Definition: pix.h:983
@ L_SV_HISTO
Definition: pix.h:985
@ L_HV_HISTO
Definition: pix.h:984
@ DEFAULT_CLIP_UPPER_2
Definition: pix.h:731
@ DEFAULT_CLIP_LOWER_1
Definition: pix.h:728
@ DEFAULT_CLIP_LOWER_2
Definition: pix.h:730
@ DEFAULT_CLIP_UPPER_1
Definition: pix.h:729
@ L_BLEND_GRAY
Definition: pix.h:549
@ L_BLEND_TO_WHITE
Definition: pix.h:547
@ L_BLEND_WITH_INVERSE
Definition: pix.h:546
@ L_BLEND_TO_BLACK
Definition: pix.h:548
@ L_BLEND_GRAY_WITH_INVERSE
Definition: pix.h:550
@ L_MAX_DIFF
Definition: pix.h:633
@ L_INTERMED_DIFF
Definition: pix.h:631
@ L_AVE_MAX_DIFF_2
Definition: pix.h:632
@ L_SELECT_IF_LTE
Definition: pix.h:577
@ L_SELECT_IF_LT
Definition: pix.h:575
@ L_SELECT_IF_GT
Definition: pix.h:576
@ L_SELECT_IF_GTE
Definition: pix.h:578
@ L_POS_SLOPE_LINE
Definition: pix.h:807
@ L_HORIZONTAL_LINE
Definition: pix.h:806
@ L_OBLIQUE_LINE
Definition: pix.h:810
@ L_NEG_SLOPE_LINE
Definition: pix.h:809
@ L_VERTICAL_LINE
Definition: pix.h:808
static const l_float32 L_RED_WEIGHT
Definition: pix.h:370
@ L_SELECT_IF_BOTH
Definition: pix.h:599
@ L_SELECT_IF_EITHER
Definition: pix.h:597
@ L_SELECT_WIDTH
Definition: pix.h:593
@ L_SELECT_XVAL
Definition: pix.h:595
@ L_SELECT_HEIGHT
Definition: pix.h:594
@ L_SELECT_YVAL
Definition: pix.h:596
@ L_USE_INNER
Definition: pix.h:1030
@ L_USE_OUTER
Definition: pix.h:1031
@ L_SORT_BY_AREA
Definition: pix.h:537
@ L_SORT_BY_MIN_DIMENSION
Definition: pix.h:534
@ L_SORT_BY_PERIMETER
Definition: pix.h:536
@ L_SORT_BY_WIDTH
Definition: pix.h:532
@ L_SORT_BY_RIGHT
Definition: pix.h:530
@ L_SORT_BY_BOT
Definition: pix.h:531
@ L_SORT_BY_ASPECT_RATIO
Definition: pix.h:538
@ L_SORT_BY_HEIGHT
Definition: pix.h:533
@ L_SORT_BY_MAX_DIMENSION
Definition: pix.h:535
@ L_SORT_BY_Y
Definition: pix.h:529
@ L_SORT_BY_X
Definition: pix.h:528
@ REMOVE_CMAP_TO_FULL_COLOR
Definition: pix.h:382
@ REMOVE_CMAP_TO_GRAYSCALE
Definition: pix.h:381
@ REMOVE_CMAP_WITH_ALPHA
Definition: pix.h:383
@ REMOVE_CMAP_BASED_ON_SRC
Definition: pix.h:384
@ REMOVE_CMAP_TO_BINARY
Definition: pix.h:380
@ L_ADD_AT_BOT
Definition: pix.h:1007
@ L_ADD_LEFT
Definition: pix.h:1004
@ L_ADD_AT_LEFT
Definition: pix.h:1008
@ L_ADD_BELOW
Definition: pix.h:1003
@ L_ADD_AT_TOP
Definition: pix.h:1006
@ L_ADD_ABOVE
Definition: pix.h:1002
@ L_ADD_RIGHT
Definition: pix.h:1005
@ L_ADD_AT_RIGHT
Definition: pix.h:1009
@ L_COPY
Definition: pix.h:505
@ L_CLONE
Definition: pix.h:506
@ L_COPY_CLONE
Definition: pix.h:507
@ L_NOCOPY
Definition: pix.h:503
@ L_INSERT
Definition: pix.h:504
@ L_PORTRAIT_MODE
Definition: pix.h:818
@ L_LANDSCAPE_MODE
Definition: pix.h:819
@ L_UPPER_RIGHT
Definition: pix.h:910
@ L_LOWER_RIGHT
Definition: pix.h:912
@ L_UPPER_LEFT
Definition: pix.h:909
@ L_BOX_CENTER
Definition: pix.h:913
@ L_LOWER_LEFT
Definition: pix.h:911
@ L_CHOOSE_CONSECUTIVE
Definition: pix.h:775
@ L_CHOOSE_SKIP_BY
Definition: pix.h:776
@ L_NO_CHROMA_SAMPLING_JPEG
Definition: pix.h:1054
@ L_LINEAR_WARP
Definition: pix.h:927
@ L_QUADRATIC_WARP
Definition: pix.h:928
@ L_EXCLUDE_REGION
Definition: pix.h:994
@ L_INCLUDE_REGION
Definition: pix.h:993
@ L_PAINT_LIGHT
Definition: pix.h:556
@ L_PAINT_DARK
Definition: pix.h:557
@ L_VERTICAL_RUNS
Definition: pix.h:955
@ L_HORIZONTAL_RUNS
Definition: pix.h:954
@ L_TWO_SIDED_EDGE
Definition: pix.h:964
@ L_SOBEL_EDGE
Definition: pix.h:963
@ L_SET_WHITE
Definition: pix.h:699
@ L_SET_BLACK
Definition: pix.h:700
@ L_WARP_TO_RIGHT
Definition: pix.h:922
@ L_WARP_TO_LEFT
Definition: pix.h:921
@ L_CLIP_TO_FFFF
Definition: pix.h:647
@ L_MS_TWO_BYTES
Definition: pix.h:646
@ L_CLIP_TO_FF
Definition: pix.h:644
@ L_LS_TWO_BYTES
Definition: pix.h:645
@ L_MS_BYTE
Definition: pix.h:642
@ L_AUTO_BYTE
Definition: pix.h:643
@ L_LS_BYTE
Definition: pix.h:641
@ L_ADJUST_CHOOSE_MAX
Definition: pix.h:851
@ L_SET_RIGHT
Definition: pix.h:853
@ L_GET_LEFT
Definition: pix.h:856
@ L_SET_LEFT
Definition: pix.h:852
@ L_ADJUST_LEFT
Definition: pix.h:844
@ L_SET_BOT
Definition: pix.h:855
@ L_ADJUST_LEFT_AND_RIGHT
Definition: pix.h:846
@ L_ADJUST_RIGHT
Definition: pix.h:845
@ L_ADJUST_BOT
Definition: pix.h:848
@ L_GET_RIGHT
Definition: pix.h:857
@ L_ADJUST_TOP
Definition: pix.h:847
@ L_ADJUST_SKIP
Definition: pix.h:843
@ L_SET_TOP
Definition: pix.h:854
@ L_GET_TOP
Definition: pix.h:858
@ L_ADJUST_TOP_AND_BOT
Definition: pix.h:849
@ L_ADJUST_CHOOSE_MIN
Definition: pix.h:850
@ L_GET_BOT
Definition: pix.h:859
@ L_BLACK_IS_MAX
Definition: pix.h:718
@ L_WHITE_IS_MAX
Definition: pix.h:717
@ L_FROM_BOT
Definition: pix.h:830
@ L_FROM_LEFT
Definition: pix.h:827
@ L_SCAN_NEGATIVE
Definition: pix.h:831
@ L_SCAN_VERTICAL
Definition: pix.h:835
@ L_SCAN_BOTH
Definition: pix.h:833
@ L_SCAN_HORIZONTAL
Definition: pix.h:834
@ L_FROM_RIGHT
Definition: pix.h:828
@ L_SCAN_POSITIVE
Definition: pix.h:832
@ L_FROM_TOP
Definition: pix.h:829
@ L_ADD_TRAIL_SLASH
Definition: pix.h:1081
@ L_REMOVE_TRAIL_SLASH
Definition: pix.h:1082
@ L_BIN_SORT
Definition: pix.h:517
@ L_SHELL_SORT
Definition: pix.h:516
@ L_REMOVE_SMALL
Definition: pix.h:881
@ L_COMBINE
Definition: pix.h:880
@ L_TEXT_ORIENT_DOWN
Definition: pix.h:787
@ L_TEXT_ORIENT_UP
Definition: pix.h:785
@ L_TEXT_ORIENT_LEFT
Definition: pix.h:786
@ L_TEXT_ORIENT_RIGHT
Definition: pix.h:788
@ L_TEXT_ORIENT_UNKNOWN
Definition: pix.h:784
@ L_PLOT_AT_BOT
Definition: pix.h:1019
@ L_PLOT_AT_LEFT
Definition: pix.h:1020
@ L_PLOT_AT_MID_VERT
Definition: pix.h:1021
@ L_PLOT_AT_MID_HORIZ
Definition: pix.h:1018
@ L_PLOT_AT_TOP
Definition: pix.h:1017
@ L_PLOT_AT_RIGHT
Definition: pix.h:1022
@ L_DISPLAY_WITH_XV
Definition: pix.h:1041
@ L_DISPLAY_WITH_XZGV
Definition: pix.h:1039
@ L_DISPLAY_WITH_XLI
Definition: pix.h:1040
@ L_DISPLAY_WITH_OPEN
Definition: pix.h:1043
@ L_DISPLAY_WITH_IV
Definition: pix.h:1042
@ L_INTERPOLATED
Definition: pix.h:936
@ L_SAMPLED
Definition: pix.h:937
@ L_CLIP_TO_ZERO
Definition: pix.h:1062
@ L_TAKE_ABSVAL
Definition: pix.h:1063
@ L_SORT_DECREASING
Definition: pix.h:523
@ L_SORT_INCREASING
Definition: pix.h:522
@ L_SUBPIXEL_ORDER_VRGB
Definition: pix.h:974
@ L_SUBPIXEL_ORDER_BGR
Definition: pix.h:973
@ L_SUBPIXEL_ORDER_RGB
Definition: pix.h:972
@ L_SUBPIXEL_ORDER_VBGR
Definition: pix.h:975
@ L_CHECK_BOTH
Definition: pix.h:607
@ L_CHECK_WIDTH
Definition: pix.h:605
@ L_CHECK_HEIGHT
Definition: pix.h:606
@ L_EUCLIDEAN_DISTANCE
Definition: pix.h:740
@ L_MANHATTAN_DISTANCE
Definition: pix.h:739
@ L_THIN_BG
Definition: pix.h:946
@ L_THIN_FG
Definition: pix.h:945
@ L_USE_MINSIZE
Definition: pix.h:867
@ L_SUB_ON_LOC_DIFF
Definition: pix.h:869
@ L_USE_CAPPED_MIN
Definition: pix.h:871
@ L_USE_CAPPED_MAX
Definition: pix.h:872
@ L_USE_MAXSIZE
Definition: pix.h:868
@ L_SUB_ON_SIZE_DIFF
Definition: pix.h:870
@ L_EQUAL_TO_ZERO
Definition: pix.h:1072
@ L_LESS_THAN_ZERO
Definition: pix.h:1071
@ L_GREATER_THAN_ZERO
Definition: pix.h:1073
@ L_MODE_VAL
Definition: pix.h:763
@ L_ROOT_MEAN_SQUARE
Definition: pix.h:765
@ L_MODE_COUNT
Definition: pix.h:764
@ L_MEAN_ABSVAL
Definition: pix.h:761
@ L_VARIANCE
Definition: pix.h:767
@ L_STANDARD_DEVIATION
Definition: pix.h:766
@ L_MEDIAN_VAL
Definition: pix.h:762
@ L_BRING_IN_BLACK
Definition: pix.h:663
@ L_BRING_IN_WHITE
Definition: pix.h:662
@ L_GEOMETRIC_UNION
Definition: pix.h:889
@ L_SMALLEST_AREA
Definition: pix.h:892
@ L_LARGEST_AREA
Definition: pix.h:891
@ L_GEOMETRIC_INTERSECTION
Definition: pix.h:890
@ L_GET_BLACK_VAL
Definition: pix.h:709
@ L_GET_WHITE_VAL
Definition: pix.h:708
@ L_ROTATE_SAMPLING
Definition: pix.h:657
@ L_ROTATE_SHEAR
Definition: pix.h:656
@ L_ROTATE_AREA_MAP
Definition: pix.h:655
@ L_SHEAR_ABOUT_CORNER
Definition: pix.h:668
@ L_SHEAR_ABOUT_CENTER
Definition: pix.h:669
@ L_ALL_EDGES
Definition: pix.h:798
@ L_VERTICAL_EDGES
Definition: pix.h:797
@ L_HORIZONTAL_EDGES
Definition: pix.h:796
static const l_float32 L_GREEN_WEIGHT
Definition: pix.h:371
@ L_SELECT_BY_HEIGHT
Definition: pix.h:584
@ L_SELECT_BY_AREA
Definition: pix.h:587
@ L_SELECT_BY_PERIMETER
Definition: pix.h:588
@ L_SELECT_BY_WIDTH
Definition: pix.h:583
@ L_SELECT_BY_MAX_DIMENSION
Definition: pix.h:585
@ L_NON_NEGATIVE
Definition: pix.h:749
@ L_ZERO
Definition: pix.h:752
@ L_NEGATIVE
Definition: pix.h:748
@ L_ALL
Definition: pix.h:753
@ L_POSITIVE
Definition: pix.h:750
@ L_NON_POSITIVE
Definition: pix.h:751
@ L_RO_TR_SC
Definition: pix.h:679
@ L_TR_RO_SC
Definition: pix.h:680
@ L_SC_RO_TR
Definition: pix.h:678
@ L_TR_SC_RO
Definition: pix.h:677
@ L_SC_TR_RO
Definition: pix.h:682
@ L_RO_SC_TR
Definition: pix.h:681
@ L_FILL_WHITE
Definition: pix.h:690
@ L_FILL_BLACK
Definition: pix.h:691