39 #include <config_auto.h>
42 #include "allheaders.h"
77 l_int32 i, n, d, same;
83 return (
PIXA *)ERROR_PTR(
"pixas not defined", __func__, NULL);
85 return (
PIXA *)ERROR_PTR(
"invalid fg/bg type", __func__, NULL);
86 if (connectivity != 4 && connectivity != 8)
87 return (
PIXA *)ERROR_PTR(
"connectivity not 4 or 8", __func__, NULL);
88 if (maxiters == 0) maxiters = 10000;
92 return (
PIXA *)ERROR_PTR(
"pix are not all 1 bpp", __func__, NULL);
94 if (connectivity == 4)
101 for (i = 0; i < n; i++) {
162 l_int32 connectivity,
169 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, NULL);
170 if (pixGetDepth(pixs) != 1)
171 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, NULL);
173 return (
PIX *)ERROR_PTR(
"invalid fg/bg type", __func__, NULL);
174 if (connectivity != 4 && connectivity != 8)
175 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", __func__, NULL);
176 if (maxiters == 0) maxiters = 10000;
178 if (connectivity == 4)
225 l_int32 i, j, r, nsels, same;
228 PIX *pix1, *pix2, *pixd;
232 return (
PIX *)ERROR_PTR(
"pixs not defined", __func__, NULL);
233 if (pixGetDepth(pixs) != 1)
234 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", __func__, NULL);
236 return (
PIX *)ERROR_PTR(
"invalid fg/bg type", __func__, NULL);
238 return (
PIX *)ERROR_PTR(
"sela not defined", __func__, NULL);
239 if (maxiters == 0) maxiters = 10000;
244 for (i = 0; i < nsels; i++) {
251 return (
PIX *)ERROR_PTR(
"pixhmt array not made", __func__, NULL);
261 for (i = 0; i < maxiters; i++) {
263 for (r = 0; r < 4; r++) {
264 for (j = 0; j < nsels; j++) {
267 pixHMT(pixhmt[j], pixd, selr);
270 pixOr(pixhmt[0], pixhmt[0], pixhmt[j]);
343 SELA *sela1, *sela2, *sela3;
345 if (index < 1 || index > 11)
346 return (
SELA *)ERROR_PTR(
"invalid index", __func__, NULL);
460 snprintf(buf,
sizeof(buf),
"/tmp/lept/sels/set%d.png", index);
461 pixWrite(buf, pix1, IFF_PNG);
462 pixDisplay(pix1, 100, 100);
PIX * pixThinConnectedBySet(PIX *pixs, l_int32 type, SELA *sela, l_int32 maxiters)
pixThinConnectedBySet()
PIX * pixThinConnected(PIX *pixs, l_int32 type, l_int32 connectivity, l_int32 maxiters)
pixThinConnected()
PIXA * pixaThinConnected(PIXA *pixas, l_int32 type, l_int32 connectivity, l_int32 maxiters)
pixaThinConnected()
SELA * selaMakeThinSets(l_int32 index, l_int32 debug)
selaMakeThinSets()
l_ok pixEqual(PIX *pix1, PIX *pix2, l_int32 *psame)
pixEqual()
PIX * pixHMT(PIX *pixd, PIX *pixs, SEL *sel)
pixHMT()
void pixDestroy(PIX **ppix)
pixDestroy()
PIX * pixCopy(PIX *pixd, const PIX *pixs)
pixCopy()
PIX * pixCreateTemplate(const PIX *pixs)
pixCreateTemplate()
PIX * pixInvert(PIX *pixd, PIX *pixs)
pixInvert()
PIX * pixOr(PIX *pixd, PIX *pixs1, PIX *pixs2)
pixOr()
PIX * pixSubtract(PIX *pixd, PIX *pixs1, PIX *pixs2)
pixSubtract()
l_ok pixaAddPix(PIXA *pixa, PIX *pix, l_int32 copyflag)
pixaAddPix()
void pixaDestroy(PIXA **ppixa)
pixaDestroy()
l_ok pixaVerifyDepth(PIXA *pixa, l_int32 *psame, l_int32 *pmaxd)
pixaVerifyDepth()
PIXA * pixaCreate(l_int32 n)
pixaCreate()
PIX ** pixaGetPixArray(PIXA *pixa)
pixaGetPixArray()
l_int32 pixaGetCount(PIXA *pixa)
pixaGetCount()
PIX * pixaGetPix(PIXA *pixa, l_int32 index, l_int32 accesstype)
pixaGetPix()
PIX * pixExtractBorderConnComps(PIX *pixs, l_int32 connectivity)
pixExtractBorderConnComps()
void selaDestroy(SELA **psela)
selaDestroy()
l_ok selaFindSelByName(SELA *sela, const char *name, l_int32 *pindex, SEL **psel)
selaFindSelByName()
SELA * selaCreate(l_int32 n)
selaCreate()
SEL * selRotateOrth(SEL *sel, l_int32 quads)
selRotateOrth()
void selDestroy(SEL **psel)
selDestroy()
l_ok selaAddSel(SELA *sela, SEL *sel, const char *selname, l_int32 copyflag)
selaAddSel()
SEL * selaGetSel(SELA *sela, l_int32 i)
selaGetSel()
PIX * selaDisplayInPix(SELA *sela, l_int32 size, l_int32 gthick, l_int32 spacing, l_int32 ncols)
selaDisplayInPix()
l_int32 selaGetCount(SELA *sela)
selaGetCount()
SELA * sela8ccThin(SELA *sela)
sela8ccThin()
SELA * sela4and8ccThin(SELA *sela)
sela4and8ccThin()
SELA * sela4ccThin(SELA *sela)
sela4ccThin()
l_int32 lept_mkdir(const char *subdir)
lept_mkdir()