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;
189 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
190 if (pixGetDepth(pixs) != 1)
191 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
192 if (hsize < 1 || vsize < 1)
193 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
195 if (hsize == 1 && vsize == 1)
200 selnameh = selnamev = NULL;
203 if (!selnameh) found = FALSE;
207 if (!selnamev) found = FALSE;
211 L_INFO(
"Calling the decomposable dwa function\n", __func__);
212 if (selnameh) LEPT_FREE(selnameh);
213 if (selnamev) LEPT_FREE(selnamev);
218 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnameh);
220 }
else if (hsize == 1) {
221 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnamev);
225 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
226 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_DILATE, selnamev);
284 char *selnameh, *selnamev;
286 PIX *pixt1, *pixt2, *pixt3;
289 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
290 if (pixGetDepth(pixs) != 1)
291 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
292 if (hsize < 1 || vsize < 1)
293 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
295 if (hsize == 1 && vsize == 1)
300 selnameh = selnamev = NULL;
303 if (!selnameh) found = FALSE;
307 if (!selnamev) found = FALSE;
311 L_INFO(
"Calling the decomposable dwa function\n", __func__);
312 if (selnameh) LEPT_FREE(selnameh);
313 if (selnamev) LEPT_FREE(selnamev);
318 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnameh);
320 }
else if (hsize == 1) {
321 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnamev);
325 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
326 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_ERODE, selnamev);
384 char *selnameh, *selnamev;
386 PIX *pixt1, *pixt2, *pixt3;
389 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
390 if (pixGetDepth(pixs) != 1)
391 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
392 if (hsize < 1 || vsize < 1)
393 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
395 if (hsize == 1 && vsize == 1)
400 selnameh = selnamev = NULL;
403 if (!selnameh) found = FALSE;
407 if (!selnamev) found = FALSE;
411 L_INFO(
"Calling the decomposable dwa function\n", __func__);
412 if (selnameh) LEPT_FREE(selnameh);
413 if (selnamev) LEPT_FREE(selnamev);
419 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnameh);
421 }
else if (hsize == 1) {
422 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnamev);
425 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
426 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev);
427 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh);
428 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev);
488 l_int32 bordercolor, bordersize, found;
489 char *selnameh, *selnamev;
491 PIX *pixt1, *pixt2, *pixt3;
494 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
495 if (pixGetDepth(pixs) != 1)
496 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
497 if (hsize < 1 || vsize < 1)
498 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
500 if (hsize == 1 && vsize == 1)
505 selnameh = selnamev = NULL;
508 if (!selnameh) found = FALSE;
512 if (!selnamev) found = FALSE;
516 L_INFO(
"Calling the decomposable dwa function\n", __func__);
517 if (selnameh) LEPT_FREE(selnameh);
518 if (selnamev) LEPT_FREE(selnamev);
527 if (bordercolor == 0)
534 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh);
536 }
else if (hsize == 1) {
537 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev);
540 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
541 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev);
542 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh);
543 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev);
613 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
614 l_int32 hsize1, hsize2, vsize1, vsize2;
615 PIX *pixt1, *pixt2, *pixt3;
618 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
619 if (pixGetDepth(pixs) != 1)
620 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
621 if (hsize < 1 || vsize < 1)
622 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
623 if (hsize > 63 || vsize > 63)
626 if (hsize == 1 && vsize == 1)
629 hsize1 = hsize2 = vsize1 = vsize2 = 1;
630 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
633 &selnameh2, NULL, NULL);
636 &selnamev1, &selnamev2);
639 lept_stderr(
"nameh1=%s, nameh2=%s, namev1=%s, namev2=%s\n",
640 selnameh1, selnameh2, selnamev1, selnamev2);
641 lept_stderr(
"hsize1=%d, hsize2=%d, vsize1=%d, vsize2=%d\n",
642 hsize1, hsize2, vsize1, vsize2);
648 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
650 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
651 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
654 }
else if (hsize == 1) {
656 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
658 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
659 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
664 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
666 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
667 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_DILATE, selnameh2);
671 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
673 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
674 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_DILATE, selnamev2);
681 if (selnameh1) LEPT_FREE(selnameh1);
682 if (selnameh2) LEPT_FREE(selnameh2);
683 if (selnamev1) LEPT_FREE(selnamev1);
684 if (selnamev2) LEPT_FREE(selnamev2);
744 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
745 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
746 PIX *pixt1, *pixt2, *pixt3;
749 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
750 if (pixGetDepth(pixs) != 1)
751 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
752 if (hsize < 1 || vsize < 1)
753 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
754 if (hsize > 63 || vsize > 63)
757 if (hsize == 1 && vsize == 1)
760 hsize1 = hsize2 = vsize1 = vsize2 = 1;
761 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
764 &selnameh2, NULL, NULL);
767 &selnamev1, &selnamev2);
775 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
777 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
778 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
781 }
else if (hsize == 1) {
783 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
785 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
786 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
791 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
793 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
794 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_ERODE, selnameh2);
798 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
800 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
801 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_ERODE, selnamev2);
808 if (selnameh1) LEPT_FREE(selnameh1);
809 if (selnameh2) LEPT_FREE(selnameh2);
810 if (selnamev1) LEPT_FREE(selnamev1);
811 if (selnamev2) LEPT_FREE(selnamev2);
871 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
872 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
873 PIX *pixt1, *pixt2, *pixt3;
876 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
877 if (pixGetDepth(pixs) != 1)
878 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
879 if (hsize < 1 || vsize < 1)
880 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
881 if (hsize > 63 || vsize > 63)
884 if (hsize == 1 && vsize == 1)
887 hsize1 = hsize2 = vsize1 = vsize2 = 1;
888 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
891 &selnameh2, NULL, NULL);
894 &selnamev1, &selnamev2);
902 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
903 if (bordercolor == 1)
905 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnameh1);
907 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
908 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
909 if (bordercolor == 1)
911 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
912 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
914 }
else if (hsize == 1) {
916 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
917 if (bordercolor == 1)
919 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
921 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
922 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
923 if (bordercolor == 1)
925 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
926 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
929 if (hsize2 == 1 && vsize2 == 1) {
930 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
931 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
932 if (bordercolor == 1)
934 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
935 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
936 }
else if (vsize2 == 1) {
937 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
938 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
939 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
940 if (bordercolor == 1)
942 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
943 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnameh2);
944 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
945 }
else if (hsize2 == 1) {
946 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
947 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
948 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnamev2);
949 if (bordercolor == 1)
951 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
952 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
953 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
955 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
956 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
957 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
958 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
959 if (bordercolor == 1)
961 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
962 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
963 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
964 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
972 if (selnameh1) LEPT_FREE(selnameh1);
973 if (selnameh2) LEPT_FREE(selnameh2);
974 if (selnamev1) LEPT_FREE(selnamev1);
975 if (selnamev2) LEPT_FREE(selnamev2);
1036 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
1037 l_int32 hsize1, hsize2, vsize1, vsize2, setborder;
1038 PIX *pixt1, *pixt2, *pixt3;
1041 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
1042 if (pixGetDepth(pixs) != 1)
1043 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
1044 if (hsize < 1 || vsize < 1)
1045 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
1046 if (hsize > 63 || vsize > 63)
1049 if (hsize == 1 && vsize == 1)
1052 hsize1 = hsize2 = vsize1 = vsize2 = 1;
1053 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
1056 &selnameh2, NULL, NULL);
1059 &selnamev1, &selnamev2);
1068 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh1);
1070 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1071 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1074 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1075 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1077 }
else if (hsize == 1) {
1079 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev1);
1081 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
1082 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
1085 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1086 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1089 if (hsize2 == 1 && vsize2 == 1) {
1090 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1091 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1094 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1095 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1096 }
else if (vsize2 == 1) {
1097 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1098 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1099 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1102 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1103 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnameh2);
1104 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1105 }
else if (hsize2 == 1) {
1106 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1107 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1108 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnamev2);
1111 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1112 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1113 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1115 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1116 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1117 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1118 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
1121 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1122 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1123 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1124 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1132 if (selnameh1) LEPT_FREE(selnameh1);
1133 if (selnameh2) LEPT_FREE(selnameh2);
1134 if (selnamev1) LEPT_FREE(selnamev1);
1135 if (selnamev2) LEPT_FREE(selnamev2);
1184 l_int32 i, nops, nh, extrah, nv, extrav;
1185 PIX *pixt1, *pixt2, *pixt3;
1188 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
1189 if (pixGetDepth(pixs) != 1)
1190 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
1191 if (hsize < 1 || vsize < 1)
1192 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
1194 if (hsize < 64 && vsize < 64)
1206 }
else if (hsize < 64) {
1208 }
else if (hsize == 64) {
1211 nops = (extrah < 3) ? nh : nh + 1;
1217 for (i = 0; i < nops / 2; i++) {
1229 for (i = 0; i < nops / 2 - 1; i++) {
1239 }
else if (vsize < 64) {
1241 }
else if (vsize == 64) {
1244 nops = (extrav < 3) ? nv : nv + 1;
1250 for (i = 0; i < nops / 2; i++) {
1262 for (i = 0; i < nops / 2 - 1; i++) {
1302 l_int32 i, nops, nh, extrah, nv, extrav;
1303 PIX *pixt1, *pixt2, *pixt3;
1306 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
1307 if (pixGetDepth(pixs) != 1)
1308 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
1309 if (hsize < 1 || vsize < 1)
1310 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
1312 if (hsize < 64 && vsize < 64)
1324 }
else if (hsize < 64) {
1326 }
else if (hsize == 64) {
1329 nops = (extrah < 3) ? nh : nh + 1;
1335 for (i = 0; i < nops / 2; i++) {
1347 for (i = 0; i < nops / 2 - 1; i++) {
1357 }
else if (vsize < 64) {
1359 }
else if (vsize == 64) {
1362 nops = (extrav < 3) ? nv : nv + 1;
1368 for (i = 0; i < nops / 2; i++) {
1380 for (i = 0; i < nops / 2 - 1; i++) {
1426 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
1427 if (pixGetDepth(pixs) != 1)
1428 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
1429 if (hsize < 1 || vsize < 1)
1430 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
1465 l_int32 bordercolor, borderx, bordery;
1466 PIX *pixt1, *pixt2, *pixt3;
1469 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, pixd);
1470 if (pixGetDepth(pixs) != 1)
1471 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, pixd);
1472 if (hsize < 1 || vsize < 1)
1473 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", __func__, pixd);
1480 if (bordercolor == 0) {
1481 borderx = 32 + (hsize / 64) * 32;
1482 bordery = 32 + (vsize / 64) * 32;
1484 borderx = bordery = 32;
1550 l_int32 *pactualsize)
1552 l_int32 n, extra, fact1, fact2;
1555 return ERROR_INT(
"&n and &extra not both defined", __func__, 1);
1559 extra = L_MIN(1, size);
1561 n = 1 + (l_int32)((size - 63) / 62);
1562 extra = size - 63 - (n - 1) * 62 + 1;
1567 *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()