133 #include <config_auto.h>
136 #include "allheaders.h"
138 #ifndef NO_CONSOLE_IO
139 #define DEBUG_SEL_LOOKUP 0
184 char *selnameh, *selnamev;
186 PIX *pixt1, *pixt2, *pixt3;
188 PROCNAME(
"pixDilateBrickDwa");
191 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
192 if (pixGetDepth(pixs) != 1)
193 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
194 if (hsize < 1 || vsize < 1)
195 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
197 if (hsize == 1 && vsize == 1)
202 selnameh = selnamev = NULL;
205 if (!selnameh) found = FALSE;
209 if (!selnamev) found = FALSE;
213 L_INFO(
"Calling the decomposable dwa function\n", procName);
214 if (selnameh) LEPT_FREE(selnameh);
215 if (selnamev) LEPT_FREE(selnamev);
220 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnameh);
222 }
else if (hsize == 1) {
223 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnamev);
227 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
228 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_DILATE, selnamev);
286 char *selnameh, *selnamev;
288 PIX *pixt1, *pixt2, *pixt3;
290 PROCNAME(
"pixErodeBrickDwa");
293 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
294 if (pixGetDepth(pixs) != 1)
295 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
296 if (hsize < 1 || vsize < 1)
297 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
299 if (hsize == 1 && vsize == 1)
304 selnameh = selnamev = NULL;
307 if (!selnameh) found = FALSE;
311 if (!selnamev) found = FALSE;
315 L_INFO(
"Calling the decomposable dwa function\n", procName);
316 if (selnameh) LEPT_FREE(selnameh);
317 if (selnamev) LEPT_FREE(selnamev);
322 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnameh);
324 }
else if (hsize == 1) {
325 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnamev);
329 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
330 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_ERODE, selnamev);
388 char *selnameh, *selnamev;
390 PIX *pixt1, *pixt2, *pixt3;
392 PROCNAME(
"pixOpenBrickDwa");
395 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
396 if (pixGetDepth(pixs) != 1)
397 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
398 if (hsize < 1 || vsize < 1)
399 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
401 if (hsize == 1 && vsize == 1)
406 selnameh = selnamev = NULL;
409 if (!selnameh) found = FALSE;
413 if (!selnamev) found = FALSE;
417 L_INFO(
"Calling the decomposable dwa function\n", procName);
418 if (selnameh) LEPT_FREE(selnameh);
419 if (selnamev) LEPT_FREE(selnamev);
425 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnameh);
427 }
else if (hsize == 1) {
428 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnamev);
431 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
432 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev);
433 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh);
434 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev);
494 l_int32 bordercolor, bordersize, found;
495 char *selnameh, *selnamev;
497 PIX *pixt1, *pixt2, *pixt3;
499 PROCNAME(
"pixCloseBrickDwa");
502 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
503 if (pixGetDepth(pixs) != 1)
504 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
505 if (hsize < 1 || vsize < 1)
506 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
508 if (hsize == 1 && vsize == 1)
513 selnameh = selnamev = NULL;
516 if (!selnameh) found = FALSE;
520 if (!selnamev) found = FALSE;
524 L_INFO(
"Calling the decomposable dwa function\n", procName);
525 if (selnameh) LEPT_FREE(selnameh);
526 if (selnamev) LEPT_FREE(selnamev);
535 if (bordercolor == 0)
542 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh);
544 }
else if (hsize == 1) {
545 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev);
548 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
549 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev);
550 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh);
551 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev);
621 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
622 l_int32 hsize1, hsize2, vsize1, vsize2;
623 PIX *pixt1, *pixt2, *pixt3;
625 PROCNAME(
"pixDilateCompBrickDwa");
628 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
629 if (pixGetDepth(pixs) != 1)
630 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
631 if (hsize < 1 || vsize < 1)
632 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
633 if (hsize > 63 || vsize > 63)
636 if (hsize == 1 && vsize == 1)
639 hsize1 = hsize2 = vsize1 = vsize2 = 1;
640 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
643 &selnameh2, NULL, NULL);
646 &selnamev1, &selnamev2);
649 lept_stderr(
"nameh1=%s, nameh2=%s, namev1=%s, namev2=%s\n",
650 selnameh1, selnameh2, selnamev1, selnamev2);
651 lept_stderr(
"hsize1=%d, hsize2=%d, vsize1=%d, vsize2=%d\n",
652 hsize1, hsize2, vsize1, vsize2);
658 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
660 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
661 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
664 }
else if (hsize == 1) {
666 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
668 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
669 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
674 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
676 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
677 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_DILATE, selnameh2);
681 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
683 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
684 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_DILATE, selnamev2);
691 if (selnameh1) LEPT_FREE(selnameh1);
692 if (selnameh2) LEPT_FREE(selnameh2);
693 if (selnamev1) LEPT_FREE(selnamev1);
694 if (selnamev2) LEPT_FREE(selnamev2);
754 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
755 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
756 PIX *pixt1, *pixt2, *pixt3;
758 PROCNAME(
"pixErodeCompBrickDwa");
761 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
762 if (pixGetDepth(pixs) != 1)
763 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
764 if (hsize < 1 || vsize < 1)
765 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
766 if (hsize > 63 || vsize > 63)
769 if (hsize == 1 && vsize == 1)
772 hsize1 = hsize2 = vsize1 = vsize2 = 1;
773 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
776 &selnameh2, NULL, NULL);
779 &selnamev1, &selnamev2);
787 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
789 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
790 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
793 }
else if (hsize == 1) {
795 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
797 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
798 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
803 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
805 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
806 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_ERODE, selnameh2);
810 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
812 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
813 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_ERODE, selnamev2);
820 if (selnameh1) LEPT_FREE(selnameh1);
821 if (selnameh2) LEPT_FREE(selnameh2);
822 if (selnamev1) LEPT_FREE(selnamev1);
823 if (selnamev2) LEPT_FREE(selnamev2);
883 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
884 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
885 PIX *pixt1, *pixt2, *pixt3;
887 PROCNAME(
"pixOpenCompBrickDwa");
890 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
891 if (pixGetDepth(pixs) != 1)
892 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
893 if (hsize < 1 || vsize < 1)
894 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
895 if (hsize > 63 || vsize > 63)
898 if (hsize == 1 && vsize == 1)
901 hsize1 = hsize2 = vsize1 = vsize2 = 1;
902 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
905 &selnameh2, NULL, NULL);
908 &selnamev1, &selnamev2);
916 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
917 if (bordercolor == 1)
919 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnameh1);
921 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
922 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
923 if (bordercolor == 1)
925 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
926 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
928 }
else if (hsize == 1) {
930 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
931 if (bordercolor == 1)
933 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
935 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
936 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
937 if (bordercolor == 1)
939 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
940 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
943 if (hsize2 == 1 && vsize2 == 1) {
944 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
945 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
946 if (bordercolor == 1)
948 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
949 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
950 }
else if (vsize2 == 1) {
951 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
952 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
953 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
954 if (bordercolor == 1)
956 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
957 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnameh2);
958 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
959 }
else if (hsize2 == 1) {
960 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
961 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
962 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnamev2);
963 if (bordercolor == 1)
965 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
966 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
967 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
969 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
970 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
971 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
972 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
973 if (bordercolor == 1)
975 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
976 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
977 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
978 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
986 if (selnameh1) LEPT_FREE(selnameh1);
987 if (selnameh2) LEPT_FREE(selnameh2);
988 if (selnamev1) LEPT_FREE(selnamev1);
989 if (selnamev2) LEPT_FREE(selnamev2);
1050 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
1051 l_int32 hsize1, hsize2, vsize1, vsize2, setborder;
1052 PIX *pixt1, *pixt2, *pixt3;
1054 PROCNAME(
"pixCloseCompBrickDwa");
1057 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1058 if (pixGetDepth(pixs) != 1)
1059 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1060 if (hsize < 1 || vsize < 1)
1061 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1062 if (hsize > 63 || vsize > 63)
1065 if (hsize == 1 && vsize == 1)
1068 hsize1 = hsize2 = vsize1 = vsize2 = 1;
1069 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
1072 &selnameh2, NULL, NULL);
1075 &selnamev1, &selnamev2);
1084 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh1);
1086 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1087 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1090 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1091 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1093 }
else if (hsize == 1) {
1095 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev1);
1097 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
1098 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
1101 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1102 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1105 if (hsize2 == 1 && vsize2 == 1) {
1106 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1107 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1110 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1111 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1112 }
else if (vsize2 == 1) {
1113 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1114 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1115 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1118 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1119 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnameh2);
1120 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1121 }
else if (hsize2 == 1) {
1122 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1123 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1124 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnamev2);
1127 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1128 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1129 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1131 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1132 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1133 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1134 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
1137 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1138 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1139 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1140 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1148 if (selnameh1) LEPT_FREE(selnameh1);
1149 if (selnameh2) LEPT_FREE(selnameh2);
1150 if (selnamev1) LEPT_FREE(selnamev1);
1151 if (selnamev2) LEPT_FREE(selnamev2);
1200 l_int32 i, nops, nh, extrah, nv, extrav;
1201 PIX *pixt1, *pixt2, *pixt3;
1203 PROCNAME(
"pixDilateCompBrickExtendDwa");
1206 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1207 if (pixGetDepth(pixs) != 1)
1208 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1209 if (hsize < 1 || vsize < 1)
1210 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1212 if (hsize < 64 && vsize < 64)
1224 }
else if (hsize < 64) {
1226 }
else if (hsize == 64) {
1229 nops = (extrah < 3) ? nh : nh + 1;
1235 for (i = 0; i < nops / 2; i++) {
1247 for (i = 0; i < nops / 2 - 1; i++) {
1257 }
else if (vsize < 64) {
1259 }
else if (vsize == 64) {
1262 nops = (extrav < 3) ? nv : nv + 1;
1268 for (i = 0; i < nops / 2; i++) {
1280 for (i = 0; i < nops / 2 - 1; i++) {
1320 l_int32 i, nops, nh, extrah, nv, extrav;
1321 PIX *pixt1, *pixt2, *pixt3;
1323 PROCNAME(
"pixErodeCompBrickExtendDwa");
1326 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1327 if (pixGetDepth(pixs) != 1)
1328 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1329 if (hsize < 1 || vsize < 1)
1330 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1332 if (hsize < 64 && vsize < 64)
1344 }
else if (hsize < 64) {
1346 }
else if (hsize == 64) {
1349 nops = (extrah < 3) ? nh : nh + 1;
1355 for (i = 0; i < nops / 2; i++) {
1367 for (i = 0; i < nops / 2 - 1; i++) {
1377 }
else if (vsize < 64) {
1379 }
else if (vsize == 64) {
1382 nops = (extrav < 3) ? nv : nv + 1;
1388 for (i = 0; i < nops / 2; i++) {
1400 for (i = 0; i < nops / 2 - 1; i++) {
1445 PROCNAME(
"pixOpenCompBrickExtendDwa");
1448 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1449 if (pixGetDepth(pixs) != 1)
1450 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1451 if (hsize < 1 || vsize < 1)
1452 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1487 l_int32 bordercolor, borderx, bordery;
1488 PIX *pixt1, *pixt2, *pixt3;
1490 PROCNAME(
"pixCloseCompBrickExtendDwa");
1493 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1494 if (pixGetDepth(pixs) != 1)
1495 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1496 if (hsize < 1 || vsize < 1)
1497 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1504 if (bordercolor == 0) {
1505 borderx = 32 + (hsize / 64) * 32;
1506 bordery = 32 + (vsize / 64) * 32;
1508 borderx = bordery = 32;
1574 l_int32 *pactualsize)
1576 l_int32 n, extra, fact1, fact2;
1578 PROCNAME(
"getExtendedCompositeParameters");
1581 return ERROR_INT(
"&n and &extra not both defined", procName, 1);
1585 extra = L_MIN(1, size);
1587 n = 1 + (l_int32)((size - 63) / 62);
1588 extra = size - 63 - (n - 1) * 62 + 1;
1593 *pactualsize = 63 + (n - 1) * 62 + fact1 * fact2 - 1;
l_ok selectComposableSizes(l_int32 size, l_int32 *pfactor1, l_int32 *pfactor2)
selectComposableSizes()
l_uint32 getMorphBorderPixelColor(l_int32 type, l_int32 depth)
getMorphBorderPixelColor()
PIX * pixCloseCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixCloseCompBrickExtendDwa()
PIX * pixErodeCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixErodeCompBrickDwa()
l_ok getExtendedCompositeParameters(l_int32 size, l_int32 *pn, l_int32 *pextra, l_int32 *pactualsize)
getExtendedCompositeParameters()
PIX * pixOpenCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenCompBrickDwa()
PIX * pixCloseCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixCloseCompBrickDwa()
PIX * pixOpenBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenBrickDwa()
PIX * pixCloseBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixCloseBrickDwa()
PIX * pixErodeBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixErodeBrickDwa()
PIX * pixErodeCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixErodeCompBrickExtendDwa()
PIX * pixDilateCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateCompBrickDwa()
PIX * pixOpenCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenCompBrickExtendDwa()
PIX * pixDilateBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateBrickDwa()
PIX * pixDilateCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateCompBrickExtendDwa()
void pixDestroy(PIX **ppix)
pixDestroy()
PIX * pixCopy(PIX *pixd, const PIX *pixs)
pixCopy()
l_ok pixTransferAllData(PIX *pixd, PIX **ppixs, l_int32 copytext, l_int32 copyformat)
pixTransferAllData()
PIX * pixCreateTemplate(const PIX *pixs)
pixCreateTemplate()
PIX * pixClone(PIX *pixs)
pixClone()
PIX * pixRemoveBorderGeneral(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot)
pixRemoveBorderGeneral()
PIX * pixAddBorder(PIX *pixs, l_int32 npix, l_uint32 val)
pixAddBorder()
PIX * pixAddBorderGeneral(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_uint32 val)
pixAddBorderGeneral()
PIX * pixRemoveBorder(PIX *pixs, l_int32 npix)
pixRemoveBorder()
l_ok pixSetOrClearBorder(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_int32 op)
pixSetOrClearBorder()
l_ok getCompositeParameters(l_int32 size, l_int32 *psize1, l_int32 *psize2, char **pnameh1, char **pnameh2, char **pnamev1, char **pnamev2)
getCompositeParameters()
void selaDestroy(SELA **psela)
selaDestroy()
char * selaGetBrickName(SELA *sela, l_int32 hsize, l_int32 vsize)
selaGetBrickName()
SELA * selaAddBasic(SELA *sela)
selaAddBasic()
void lept_stderr(const char *fmt,...)
lept_stderr()