132 #include "allheaders.h" 134 #ifndef NO_CONSOLE_IO 135 #define DEBUG_SEL_LOOKUP 0 181 char *selnameh, *selnamev;
183 PIX *pixt1, *pixt2, *pixt3;
185 PROCNAME(
"pixDilateBrickDwa");
188 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
189 if (pixGetDepth(pixs) != 1)
190 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
191 if (hsize < 1 || vsize < 1)
192 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
194 if (hsize == 1 && vsize == 1)
199 selnameh = selnamev = NULL;
202 if (!selnameh) found = FALSE;
206 if (!selnamev) found = FALSE;
210 L_INFO(
"Calling the decomposable dwa function\n", procName);
211 if (selnameh) LEPT_FREE(selnameh);
212 if (selnamev) LEPT_FREE(selnamev);
217 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnameh);
219 }
else if (hsize == 1) {
220 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_DILATE, selnamev);
224 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
225 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_DILATE, selnamev);
283 char *selnameh, *selnamev;
285 PIX *pixt1, *pixt2, *pixt3;
287 PROCNAME(
"pixErodeBrickDwa");
290 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
291 if (pixGetDepth(pixs) != 1)
292 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
293 if (hsize < 1 || vsize < 1)
294 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
296 if (hsize == 1 && vsize == 1)
301 selnameh = selnamev = NULL;
304 if (!selnameh) found = FALSE;
308 if (!selnamev) found = FALSE;
312 L_INFO(
"Calling the decomposable dwa function\n", procName);
313 if (selnameh) LEPT_FREE(selnameh);
314 if (selnamev) LEPT_FREE(selnamev);
319 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnameh);
321 }
else if (hsize == 1) {
322 pixt2 = pixMorphDwa_1(NULL, pixs, L_MORPH_ERODE, selnamev);
326 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
327 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_ERODE, selnamev);
385 char *selnameh, *selnamev;
387 PIX *pixt1, *pixt2, *pixt3;
389 PROCNAME(
"pixOpenBrickDwa");
392 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
393 if (pixGetDepth(pixs) != 1)
394 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
395 if (hsize < 1 || vsize < 1)
396 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
398 if (hsize == 1 && vsize == 1)
403 selnameh = selnamev = NULL;
406 if (!selnameh) found = FALSE;
410 if (!selnamev) found = FALSE;
414 L_INFO(
"Calling the decomposable dwa function\n", procName);
415 if (selnameh) LEPT_FREE(selnameh);
416 if (selnamev) LEPT_FREE(selnamev);
422 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnameh);
424 }
else if (hsize == 1) {
425 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_OPEN, selnamev);
428 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
429 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev);
430 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh);
431 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev);
491 l_int32 bordercolor, bordersize, found;
492 char *selnameh, *selnamev;
494 PIX *pixt1, *pixt2, *pixt3;
496 PROCNAME(
"pixCloseBrickDwa");
499 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
500 if (pixGetDepth(pixs) != 1)
501 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
502 if (hsize < 1 || vsize < 1)
503 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
505 if (hsize == 1 && vsize == 1)
510 selnameh = selnamev = NULL;
513 if (!selnameh) found = FALSE;
517 if (!selnamev) found = FALSE;
521 L_INFO(
"Calling the decomposable dwa function\n", procName);
522 if (selnameh) LEPT_FREE(selnameh);
523 if (selnamev) LEPT_FREE(selnamev);
532 if (bordercolor == 0)
539 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh);
541 }
else if (hsize == 1) {
542 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev);
545 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
546 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev);
547 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh);
548 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev);
618 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
619 l_int32 hsize1, hsize2, vsize1, vsize2;
620 PIX *pixt1, *pixt2, *pixt3;
622 PROCNAME(
"pixDilateCompBrickDwa");
625 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
626 if (pixGetDepth(pixs) != 1)
627 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
628 if (hsize < 1 || vsize < 1)
629 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
630 if (hsize > 63 || vsize > 63)
633 if (hsize == 1 && vsize == 1)
636 hsize1 = hsize2 = vsize1 = vsize2 = 1;
637 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
640 &selnameh2, NULL, NULL);
643 &selnamev1, &selnamev2);
646 fprintf(stderr,
"nameh1=%s, nameh2=%s, namev1=%s, namev2=%s\n",
647 selnameh1, selnameh2, selnamev1, selnamev2);
648 fprintf(stderr,
"hsize1=%d, hsize2=%d, vsize1=%d, vsize2=%d\n",
649 hsize1, hsize2, vsize1, vsize2);
655 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
657 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
658 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
661 }
else if (hsize == 1) {
663 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
665 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
666 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
671 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
673 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
674 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_DILATE, selnameh2);
678 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
680 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
681 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_DILATE, selnamev2);
688 if (selnameh1) LEPT_FREE(selnameh1);
689 if (selnameh2) LEPT_FREE(selnameh2);
690 if (selnamev1) LEPT_FREE(selnamev1);
691 if (selnamev2) LEPT_FREE(selnamev2);
751 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
752 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
753 PIX *pixt1, *pixt2, *pixt3;
755 PROCNAME(
"pixErodeCompBrickDwa");
758 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
759 if (pixGetDepth(pixs) != 1)
760 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
761 if (hsize < 1 || vsize < 1)
762 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
763 if (hsize > 63 || vsize > 63)
766 if (hsize == 1 && vsize == 1)
769 hsize1 = hsize2 = vsize1 = vsize2 = 1;
770 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
773 &selnameh2, NULL, NULL);
776 &selnamev1, &selnamev2);
784 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
786 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
787 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
790 }
else if (hsize == 1) {
792 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
794 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
795 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
800 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
802 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
803 pixt3 = pixFMorphopGen_2(NULL, pixt2, L_MORPH_ERODE, selnameh2);
807 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
809 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
810 pixFMorphopGen_2(pixt2, pixt2, L_MORPH_ERODE, selnamev2);
817 if (selnameh1) LEPT_FREE(selnameh1);
818 if (selnameh2) LEPT_FREE(selnameh2);
819 if (selnamev1) LEPT_FREE(selnamev1);
820 if (selnamev2) LEPT_FREE(selnamev2);
880 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
881 l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
882 PIX *pixt1, *pixt2, *pixt3;
884 PROCNAME(
"pixOpenCompBrickDwa");
887 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
888 if (pixGetDepth(pixs) != 1)
889 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
890 if (hsize < 1 || vsize < 1)
891 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
892 if (hsize > 63 || vsize > 63)
895 if (hsize == 1 && vsize == 1)
898 hsize1 = hsize2 = vsize1 = vsize2 = 1;
899 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
902 &selnameh2, NULL, NULL);
905 &selnamev1, &selnamev2);
913 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
914 if (bordercolor == 1)
916 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnameh1);
918 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
919 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
920 if (bordercolor == 1)
922 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
923 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
925 }
else if (hsize == 1) {
927 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
928 if (bordercolor == 1)
930 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
932 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnamev1);
933 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnamev2);
934 if (bordercolor == 1)
936 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
937 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
940 if (hsize2 == 1 && vsize2 == 1) {
941 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
942 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
943 if (bordercolor == 1)
945 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
946 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
947 }
else if (vsize2 == 1) {
948 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
949 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
950 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
951 if (bordercolor == 1)
953 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
954 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnameh2);
955 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnamev1);
956 }
else if (hsize2 == 1) {
957 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
958 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_ERODE, selnamev1);
959 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnamev2);
960 if (bordercolor == 1)
962 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_DILATE, selnameh1);
963 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
964 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
966 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
967 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_ERODE, selnameh2);
968 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
969 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
970 if (bordercolor == 1)
972 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnameh1);
973 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnameh2);
974 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
975 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
983 if (selnameh1) LEPT_FREE(selnameh1);
984 if (selnameh2) LEPT_FREE(selnameh2);
985 if (selnamev1) LEPT_FREE(selnamev1);
986 if (selnamev2) LEPT_FREE(selnamev2);
1047 char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
1048 l_int32 hsize1, hsize2, vsize1, vsize2, setborder;
1049 PIX *pixt1, *pixt2, *pixt3;
1051 PROCNAME(
"pixCloseCompBrickDwa");
1054 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1055 if (pixGetDepth(pixs) != 1)
1056 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1057 if (hsize < 1 || vsize < 1)
1058 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1059 if (hsize > 63 || vsize > 63)
1062 if (hsize == 1 && vsize == 1)
1065 hsize1 = hsize2 = vsize1 = vsize2 = 1;
1066 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
1069 &selnameh2, NULL, NULL);
1072 &selnamev1, &selnamev2);
1081 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnameh1);
1083 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1084 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1087 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1088 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1090 }
else if (hsize == 1) {
1092 pixt2 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_CLOSE, selnamev1);
1094 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnamev1);
1095 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnamev2);
1098 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1099 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1102 if (hsize2 == 1 && vsize2 == 1) {
1103 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1104 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1107 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1108 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1109 }
else if (vsize2 == 1) {
1110 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1111 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1112 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1115 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1116 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_ERODE, selnameh2);
1117 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnamev1);
1118 }
else if (hsize2 == 1) {
1119 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1120 pixt2 = pixFMorphopGen_1(NULL, pixt3, L_MORPH_DILATE, selnamev1);
1121 pixFMorphopGen_2(pixt3, pixt2, L_MORPH_DILATE, selnamev2);
1124 pixFMorphopGen_1(pixt2, pixt3, L_MORPH_ERODE, selnameh1);
1125 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1126 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1128 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh1);
1129 pixt2 = pixFMorphopGen_2(NULL, pixt3, L_MORPH_DILATE, selnameh2);
1130 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_DILATE, selnamev1);
1131 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_DILATE, selnamev2);
1134 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnameh1);
1135 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnameh2);
1136 pixFMorphopGen_1(pixt3, pixt2, L_MORPH_ERODE, selnamev1);
1137 pixFMorphopGen_2(pixt2, pixt3, L_MORPH_ERODE, selnamev2);
1145 if (selnameh1) LEPT_FREE(selnameh1);
1146 if (selnameh2) LEPT_FREE(selnameh2);
1147 if (selnamev1) LEPT_FREE(selnamev1);
1148 if (selnamev2) LEPT_FREE(selnamev2);
1197 l_int32 i, nops, nh, extrah, nv, extrav;
1198 PIX *pixt1, *pixt2, *pixt3;
1200 PROCNAME(
"pixDilateCompBrickExtendDwa");
1203 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1204 if (pixGetDepth(pixs) != 1)
1205 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1206 if (hsize < 1 || vsize < 1)
1207 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1209 if (hsize < 64 && vsize < 64)
1221 }
else if (hsize < 64) {
1223 }
else if (hsize == 64) {
1226 nops = (extrah < 3) ? nh : nh + 1;
1232 for (i = 0; i < nops / 2; i++) {
1244 for (i = 0; i < nops / 2 - 1; i++) {
1254 }
else if (vsize < 64) {
1256 }
else if (vsize == 64) {
1259 nops = (extrav < 3) ? nv : nv + 1;
1265 for (i = 0; i < nops / 2; i++) {
1277 for (i = 0; i < nops / 2 - 1; i++) {
1317 l_int32 i, nops, nh, extrah, nv, extrav;
1318 PIX *pixt1, *pixt2, *pixt3;
1320 PROCNAME(
"pixErodeCompBrickExtendDwa");
1323 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1324 if (pixGetDepth(pixs) != 1)
1325 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1326 if (hsize < 1 || vsize < 1)
1327 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1329 if (hsize < 64 && vsize < 64)
1341 }
else if (hsize < 64) {
1343 }
else if (hsize == 64) {
1346 nops = (extrah < 3) ? nh : nh + 1;
1352 for (i = 0; i < nops / 2; i++) {
1364 for (i = 0; i < nops / 2 - 1; i++) {
1374 }
else if (vsize < 64) {
1376 }
else if (vsize == 64) {
1379 nops = (extrav < 3) ? nv : nv + 1;
1385 for (i = 0; i < nops / 2; i++) {
1397 for (i = 0; i < nops / 2 - 1; i++) {
1439 PROCNAME(
"pixOpenCompBrickExtendDwa");
1442 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1443 if (pixGetDepth(pixs) != 1)
1444 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1445 if (hsize < 1 || vsize < 1)
1446 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1478 l_int32 bordercolor, borderx, bordery;
1479 PIX *pixt1, *pixt2, *pixt3;
1481 PROCNAME(
"pixCloseCompBrickExtendDwa");
1484 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, pixd);
1485 if (pixGetDepth(pixs) != 1)
1486 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixd);
1487 if (hsize < 1 || vsize < 1)
1488 return (
PIX *)ERROR_PTR(
"hsize and vsize not >= 1", procName, pixd);
1495 if (bordercolor == 0) {
1496 borderx = 32 + (hsize / 64) * 32;
1497 bordery = 32 + (vsize / 64) * 32;
1499 borderx = bordery = 32;
1565 l_int32 *pactualsize)
1567 l_int32 n, extra, fact1, fact2;
1569 PROCNAME(
"getExtendedCompositeParameters");
1572 return ERROR_INT(
"&n and &extra not both defined", procName, 1);
1576 extra = L_MIN(1, size);
1578 n = 1 + (l_int32)((size - 63) / 62);
1579 extra = size - 63 - (n - 1) * 62 + 1;
1584 *pactualsize = 63 + (n - 1) * 62 + fact1 * fact2 - 1;
l_ok selectComposableSizes(l_int32 size, l_int32 *pfactor1, l_int32 *pfactor2)
selectComposableSizes()
PIX * pixCloseCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixCloseCompBrickDwa()
PIX * pixRemoveBorderGeneral(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot)
pixRemoveBorderGeneral()
l_uint32 getMorphBorderPixelColor(l_int32 type, l_int32 depth)
getMorphBorderPixelColor()
char * selaGetBrickName(SELA *sela, l_int32 hsize, l_int32 vsize)
selaGetBrickName()
PIX * pixCreateTemplate(PIX *pixs)
pixCreateTemplate()
PIX * pixDilateCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateCompBrickExtendDwa()
PIX * pixErodeCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixErodeCompBrickExtendDwa()
PIX * pixDilateBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateBrickDwa()
void selaDestroy(SELA **psela)
selaDestroy()
l_ok pixSetOrClearBorder(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_int32 op)
pixSetOrClearBorder()
PIX * pixAddBorder(PIX *pixs, l_int32 npix, l_uint32 val)
pixAddBorder()
PIX * pixRemoveBorder(PIX *pixs, l_int32 npix)
pixRemoveBorder()
l_ok getExtendedCompositeParameters(l_int32 size, l_int32 *pn, l_int32 *pextra, l_int32 *pactualsize)
getExtendedCompositeParameters()
PIX * pixOpenCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenCompBrickExtendDwa()
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 * pixClone(PIX *pixs)
pixClone()
void pixDestroy(PIX **ppix)
pixDestroy()
PIX * pixOpenCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenCompBrickDwa()
l_ok getCompositeParameters(l_int32 size, l_int32 *psize1, l_int32 *psize2, char **pnameh1, char **pnameh2, char **pnamev1, char **pnamev2)
getCompositeParameters()
PIX * pixOpenBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixOpenBrickDwa()
SELA * selaAddBasic(SELA *sela)
selaAddBasic()
PIX * pixCopy(PIX *pixd, PIX *pixs)
pixCopy()
PIX * pixDilateCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixDilateCompBrickDwa()
l_ok pixTransferAllData(PIX *pixd, PIX **ppixs, l_int32 copytext, l_int32 copyformat)
pixTransferAllData()
PIX * pixErodeCompBrickDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixErodeCompBrickDwa()
PIX * pixAddBorderGeneral(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_uint32 val)
pixAddBorderGeneral()
PIX * pixCloseCompBrickExtendDwa(PIX *pixd, PIX *pixs, l_int32 hsize, l_int32 vsize)
pixCloseCompBrickExtendDwa()