184char *selnameh, *selnamev;
186PIX *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)
196 return pixCopy(pixd, pixs);
198 sela = selaAddBasic(NULL);
200 selnameh = selnamev = NULL;
202 selnameh = selaGetBrickName(sela, hsize, 1);
203 if (!selnameh) found = FALSE;
206 selnamev = selaGetBrickName(sela, 1, vsize);
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);
224 pixt1 = pixAddBorder(pixs, 32, 0);
225 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_DILATE, selnameh);
226 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_DILATE, selnamev);
227 pixt2 = pixRemoveBorder(pixt1, 32);
237 pixTransferAllData(pixd, &pixt2, 0, 0);
284char *selnameh, *selnamev;
286PIX *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)
296 return pixCopy(pixd, pixs);
298 sela = selaAddBasic(NULL);
300 selnameh = selnamev = NULL;
302 selnameh = selaGetBrickName(sela, hsize, 1);
303 if (!selnameh) found = FALSE;
306 selnamev = selaGetBrickName(sela, 1, vsize);
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);
324 pixt1 = pixAddBorder(pixs, 32, 0);
325 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh);
326 pixFMorphopGen_1(pixt1, pixt3, L_MORPH_ERODE, selnamev);
327 pixt2 = pixRemoveBorder(pixt1, 32);
337 pixTransferAllData(pixd, &pixt2, 0, 0);
384char *selnameh, *selnamev;
386PIX *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)
396 return pixCopy(pixd, pixs);
398 sela = selaAddBasic(NULL);
400 selnameh = selnamev = NULL;
402 selnameh = selaGetBrickName(sela, hsize, 1);
403 if (!selnameh) found = FALSE;
406 selnamev = selaGetBrickName(sela, 1, vsize);
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);
417 pixt1 = pixAddBorder(pixs, 32, 0);
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);
433 pixt3 = pixRemoveBorder(pixt2, 32);
440 pixTransferAllData(pixd, &pixt3, 0, 0);
488l_int32 bordercolor, bordersize, found;
489char *selnameh, *selnamev;
491PIX *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)
501 return pixCopy(pixd, pixs);
503 sela = selaAddBasic(NULL);
505 selnameh = selnamev = NULL;
507 selnameh = selaGetBrickName(sela, hsize, 1);
508 if (!selnameh) found = FALSE;
511 selnamev = selaGetBrickName(sela, 1, vsize);
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);
526 bordercolor = getMorphBorderPixelColor(L_MORPH_ERODE, 1);
527 if (bordercolor == 0)
531 pixt1 = pixAddBorder(pixs, bordersize, 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);
548 pixt3 = pixRemoveBorder(pixt2, bordersize);
555 pixTransferAllData(pixd, &pixt3, 0, 0);
613char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
614l_int32 hsize1, hsize2, vsize1, vsize2;
615PIX *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)
627 return pixCopy(pixd, pixs);
629 hsize1 = hsize2 = vsize1 = vsize2 = 1;
630 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
632 getCompositeParameters(hsize, &hsize1, &hsize2, &selnameh1,
633 &selnameh2, NULL, NULL);
635 getCompositeParameters(vsize, &vsize1, &vsize2, 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);
645 pixt1 = pixAddBorder(pixs, 64, 0);
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);
679 pixt1 = pixRemoveBorder(pixt2, 64);
681 if (selnameh1) LEPT_FREE(selnameh1);
682 if (selnameh2) LEPT_FREE(selnameh2);
683 if (selnamev1) LEPT_FREE(selnamev1);
684 if (selnamev2) LEPT_FREE(selnamev2);
689 pixTransferAllData(pixd, &pixt1, 0, 0);
744char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
745l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
746PIX *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)
758 return pixCopy(pixd, pixs);
760 hsize1 = hsize2 = vsize1 = vsize2 = 1;
761 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
763 getCompositeParameters(hsize, &hsize1, &hsize2, &selnameh1,
764 &selnameh2, NULL, NULL);
766 getCompositeParameters(vsize, &vsize1, &vsize2, NULL, NULL,
767 &selnamev1, &selnamev2);
770 bordercolor = getMorphBorderPixelColor(L_MORPH_ERODE, 1);
771 pixt1 = pixAddBorder(pixs, 64, bordercolor);
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);
806 pixt1 = pixRemoveBorder(pixt2, 64);
808 if (selnameh1) LEPT_FREE(selnameh1);
809 if (selnameh2) LEPT_FREE(selnameh2);
810 if (selnamev1) LEPT_FREE(selnamev1);
811 if (selnamev2) LEPT_FREE(selnamev2);
816 pixTransferAllData(pixd, &pixt1, 0, 0);
871char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
872l_int32 hsize1, hsize2, vsize1, vsize2, bordercolor;
873PIX *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)
885 return pixCopy(pixd, pixs);
887 hsize1 = hsize2 = vsize1 = vsize2 = 1;
888 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
890 getCompositeParameters(hsize, &hsize1, &hsize2, &selnameh1,
891 &selnameh2, NULL, NULL);
893 getCompositeParameters(vsize, &vsize1, &vsize2, NULL, NULL,
894 &selnamev1, &selnamev2);
897 bordercolor = getMorphBorderPixelColor(L_MORPH_ERODE, 1);
898 pixt1 = pixAddBorder(pixs, 64, bordercolor);
902 pixt3 = pixFMorphopGen_1(NULL, pixt1, L_MORPH_ERODE, selnameh1);
903 if (bordercolor == 1)
904 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_CLR);
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)
910 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_CLR);
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)
918 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_CLR);
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)
924 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_CLR);
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)
933 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_CLR);
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)
941 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_CLR);
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)
950 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_CLR);
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)
960 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_CLR);
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);
970 pixt1 = pixRemoveBorder(pixt2, 64);
972 if (selnameh1) LEPT_FREE(selnameh1);
973 if (selnameh2) LEPT_FREE(selnameh2);
974 if (selnamev1) LEPT_FREE(selnamev1);
975 if (selnamev2) LEPT_FREE(selnamev2);
980 pixTransferAllData(pixd, &pixt1, 0, 0);
1036char *selnameh1, *selnameh2, *selnamev1, *selnamev2;
1037l_int32 hsize1, hsize2, vsize1, vsize2, setborder;
1038PIX *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)
1050 return pixCopy(pixd, pixs);
1052 hsize1 = hsize2 = vsize1 = vsize2 = 1;
1053 selnameh1 = selnameh2 = selnamev1 = selnamev2 = NULL;
1055 getCompositeParameters(hsize, &hsize1, &hsize2, &selnameh1,
1056 &selnameh2, NULL, NULL);
1058 getCompositeParameters(vsize, &vsize1, &vsize2, NULL, NULL,
1059 &selnamev1, &selnamev2);
1063 setborder = getMorphBorderPixelColor(L_MORPH_ERODE, 1);
1064 pixt1 = pixAddBorder(pixs, 64, 0);
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);
1073 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_SET);
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);
1084 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_SET);
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);
1093 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_SET);
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);
1101 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_SET);
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);
1110 pixSetOrClearBorder(pixt3, 64, 64, 64, 64,
PIX_SET);
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);
1120 pixSetOrClearBorder(pixt2, 64, 64, 64, 64,
PIX_SET);
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);
1130 pixt1 = pixRemoveBorder(pixt2, 64);
1132 if (selnameh1) LEPT_FREE(selnameh1);
1133 if (selnameh2) LEPT_FREE(selnameh2);
1134 if (selnamev1) LEPT_FREE(selnamev1);
1135 if (selnamev2) LEPT_FREE(selnamev2);
1140 pixTransferAllData(pixd, &pixt1, 0, 0);