88 #include "allheaders.h" 93 static const l_int32 MIN_COMPS_FOR_BIN_SORT = 200;
207 l_int32 connectivity,
212 l_int32 w, h, empty, changed, count;
217 PROCNAME(
"pixSelectBySize");
220 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, NULL);
221 if (connectivity != 4 && connectivity != 8)
222 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
225 return (
PIX *)ERROR_PTR(
"invalid type", procName, NULL);
228 return (
PIX *)ERROR_PTR(
"invalid relation", procName, NULL);
229 if (pchanged) *pchanged = FALSE;
248 if (pchanged) *pchanged = TRUE;
255 pixCopyResolution(pixd, pixs);
257 pixCopyText(pixd, pixs);
258 pixCopyInputFormat(pixd, pixs);
301 PROCNAME(
"pixaSelectBySize");
304 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
307 return (
PIXA *)ERROR_PTR(
"invalid type", procName, NULL);
310 return (
PIXA *)ERROR_PTR(
"invalid relation", procName, NULL);
353 l_int32 i, n, w, h, ival;
356 PROCNAME(
"pixaMakeSizeIndicator");
359 return (
NUMA *)ERROR_PTR(
"pixa not defined", procName, NULL);
362 return (
NUMA *)ERROR_PTR(
"invalid type", procName, NULL);
365 return (
NUMA *)ERROR_PTR(
"invalid relation", procName, NULL);
369 for (i = 0; i < n; i++) {
389 if (((relation ==
L_SELECT_IF_LT) && (w < width || h < height)) ||
396 if (((relation ==
L_SELECT_IF_LT) && (w < width && h < height)) ||
403 L_WARNING(
"can't get here!\n", procName);
440 l_int32 connectivity,
444 l_int32 w, h, empty, changed, count;
449 PROCNAME(
"pixSelectByPerimToAreaRatio");
452 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, NULL);
453 if (connectivity != 4 && connectivity != 8)
454 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
457 return (
PIX *)ERROR_PTR(
"invalid type", procName, NULL);
458 if (pchanged) *pchanged = FALSE;
477 if (pchanged) *pchanged = TRUE;
484 pixCopyResolution(pixd, pixs);
486 pixCopyText(pixd, pixs);
487 pixCopyInputFormat(pixd, pixs);
520 PROCNAME(
"pixaSelectByPerimToAreaRatio");
523 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
526 return (
PIXA *)ERROR_PTR(
"invalid type", procName, NULL);
571 l_int32 connectivity,
575 l_int32 w, h, empty, changed, count;
580 PROCNAME(
"pixSelectByPerimSizeRatio");
583 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, NULL);
584 if (connectivity != 4 && connectivity != 8)
585 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
588 return (
PIX *)ERROR_PTR(
"invalid type", procName, NULL);
589 if (pchanged) *pchanged = FALSE;
608 if (pchanged) *pchanged = TRUE;
615 pixCopyResolution(pixd, pixs);
617 pixCopyText(pixd, pixs);
618 pixCopyInputFormat(pixd, pixs);
651 PROCNAME(
"pixaSelectByPerimSizeRatio");
654 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
657 return (
PIXA *)ERROR_PTR(
"invalid type", procName, NULL);
701 l_int32 connectivity,
705 l_int32 w, h, empty, changed, count;
710 PROCNAME(
"pixSelectByAreaFraction");
713 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, NULL);
714 if (connectivity != 4 && connectivity != 8)
715 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
718 return (
PIX *)ERROR_PTR(
"invalid type", procName, NULL);
719 if (pchanged) *pchanged = FALSE;
738 if (pchanged) *pchanged = TRUE;
745 pixCopyResolution(pixd, pixs);
747 pixCopyText(pixd, pixs);
748 pixCopyInputFormat(pixd, pixs);
785 PROCNAME(
"pixaSelectByAreaFraction");
788 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
791 return (
PIXA *)ERROR_PTR(
"invalid type", procName, NULL);
834 l_int32 connectivity,
838 l_int32 w, h, empty, changed, count;
843 PROCNAME(
"pixSelectByWidthHeightRatio");
846 return (
PIX *)ERROR_PTR(
"pixs not defined", procName, NULL);
847 if (connectivity != 4 && connectivity != 8)
848 return (
PIX *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
851 return (
PIX *)ERROR_PTR(
"invalid type", procName, NULL);
852 if (pchanged) *pchanged = FALSE;
871 if (pchanged) *pchanged = TRUE;
878 pixCopyResolution(pixd, pixs);
880 pixCopyText(pixd, pixs);
881 pixCopyInputFormat(pixd, pixs);
918 PROCNAME(
"pixaSelectByWidthHeightRatio");
921 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
924 return (
PIXA *)ERROR_PTR(
"invalid type", procName, NULL);
963 l_int32 connectivity,
971 PROCNAME(
"pixaSelectByNumConnComp");
973 if (pchanged) *pchanged = 0;
975 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
977 return (
PIXA *)ERROR_PTR(
"nmin > nmax", procName, NULL);
978 if (connectivity != 4 && connectivity != 8)
979 return (
PIXA *)ERROR_PTR(
"connectivity not 4 or 8", procName, NULL);
984 for (i = 0; i < n; i++) {
987 if (count >= nmin && count <= nmax)
1023 l_int32 i, n, nbox, ival, nsave;
1028 PROCNAME(
"pixaSelectWithIndicator");
1031 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1033 return (
PIXA *)ERROR_PTR(
"na not defined", procName, NULL);
1037 for (i = 0; i < n; i++) {
1039 if (ival == 1) nsave++;
1043 if (pchanged) *pchanged = FALSE;
1046 if (pchanged) *pchanged = TRUE;
1049 for (i = 0; i < n; i++) {
1051 if (ival == 0)
continue;
1083 l_int32 i, n, ival, x, y, w, h;
1087 PROCNAME(
"pixRemoveWithIndicator");
1090 return ERROR_INT(
"pixs not defined", procName, 1);
1092 return ERROR_INT(
"pixa not defined", procName, 1);
1094 return ERROR_INT(
"na not defined", procName, 1);
1097 return ERROR_INT(
"pixa and na sizes not equal", procName, 1);
1099 for (i = 0; i < n; i++) {
1136 l_int32 i, n, ival, x, y, w, h;
1140 PROCNAME(
"pixAddWithIndicator");
1143 return ERROR_INT(
"pixs not defined", procName, 1);
1145 return ERROR_INT(
"pixa not defined", procName, 1);
1147 return ERROR_INT(
"na not defined", procName, 1);
1150 return ERROR_INT(
"pixa and na sizes not equal", procName, 1);
1152 for (i = 0; i < n; i++) {
1189 l_int32 i, nval, npix, nbox, val, imaxval;
1196 PROCNAME(
"pixaSelectWithString");
1198 if (perror) *perror = 0;
1200 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1202 return (
PIXA *)ERROR_PTR(
"str not defined", procName, NULL);
1205 return (
PIXA *)ERROR_PTR(
"na not made", procName, NULL);
1208 return (
PIXA *)ERROR_PTR(
"no indices found", procName, NULL);
1211 imaxval = (l_int32)(maxval + 0.1);
1214 if (imaxval >= npix) {
1215 if (perror) *perror = 1;
1216 L_ERROR(
"max index = %d, size of pixa = %d\n", procName, imaxval, npix);
1220 for (i = 0; i < nval; i++) {
1222 if (val < 0 || val >= npix) {
1223 L_ERROR(
"index %d out of range of pix\n", procName, val);
1260 l_int32 n, x, y, w, h, same, maxd;
1265 PROCNAME(
"pixaRenderComponent");
1268 return (
PIX *)ERROR_PTR(
"pixa not defined", procName, pixs);
1270 if (index < 0 || index >= n)
1271 return (
PIX *)ERROR_PTR(
"invalid index", procName, pixs);
1272 if (pixs && (pixGetDepth(pixs) != 1))
1273 return (
PIX *)ERROR_PTR(
"pixs not 1 bpp", procName, pixs);
1276 return (
PIX *)ERROR_PTR(
"not all pix with d == 1", procName, pixs);
1332 l_int32 i, n, nb, x, y, w, h;
1337 PROCNAME(
"pixaSort");
1339 if (pnaindex) *pnaindex = NULL;
1341 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1349 return (
PIXA *)ERROR_PTR(
"invalid sort type", procName, NULL);
1351 return (
PIXA *)ERROR_PTR(
"invalid sort order", procName, NULL);
1353 return (
PIXA *)ERROR_PTR(
"invalid copy flag", procName, NULL);
1357 L_INFO(
"no pix in pixa\n", procName);
1360 if ((boxa = pixas->
boxa) == NULL)
1361 return (
PIXA *)ERROR_PTR(
"boxa not found!", procName, NULL);
1368 L_WARNING(
"sort by x or y where all values are 0\n", procName);
1371 return (
PIXA *)ERROR_PTR(
"boxa and pixa counts differ", procName, NULL);
1374 if (n > MIN_COMPS_FOR_BIN_SORT &&
1378 return pixaBinSort(pixas, sorttype, sortorder, pnaindex, copyflag);
1382 return (
PIXA *)ERROR_PTR(
"na not made", procName, NULL);
1383 for (i = 0; i < n; i++) {
1415 L_WARNING(
"invalid sort type\n", procName);
1423 return (
PIXA *)ERROR_PTR(
"naindex not made", procName, NULL);
1428 return (
PIXA *)ERROR_PTR(
"pixad not made", procName, NULL);
1432 *pnaindex = naindex;
1472 l_int32 i, n, x, y, w, h;
1477 PROCNAME(
"pixaBinSort");
1479 if (pnaindex) *pnaindex = NULL;
1481 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1485 return (
PIXA *)ERROR_PTR(
"invalid sort type", procName, NULL);
1487 return (
PIXA *)ERROR_PTR(
"invalid sort order", procName, NULL);
1489 return (
PIXA *)ERROR_PTR(
"invalid copy flag", procName, NULL);
1492 if ((boxa = pixas->
boxa) == NULL)
1493 return (
PIXA *)ERROR_PTR(
"boxa not found", procName, NULL);
1496 return (
PIXA *)ERROR_PTR(
"boxa and pixa counts differ", procName, NULL);
1500 return (
PIXA *)ERROR_PTR(
"na not made", procName, NULL);
1501 for (i = 0; i < n; i++) {
1521 L_WARNING(
"invalid sort type\n", procName);
1529 return (
PIXA *)ERROR_PTR(
"naindex not made", procName, NULL);
1534 return (
PIXA *)ERROR_PTR(
"pixad not made", procName, NULL);
1538 *pnaindex = naindex;
1558 l_int32 i, n, index;
1563 PROCNAME(
"pixaSortByIndex");
1566 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1568 return (
PIXA *)ERROR_PTR(
"naindex not defined", procName, NULL);
1570 return (
PIXA *)ERROR_PTR(
"invalid copyflag", procName, NULL);
1574 for (i = 0; i < n; i++) {
1599 l_int32 pixtot, ntot, i, j, n, nn, index;
1606 PROCNAME(
"pixaSort2dByIndex");
1609 return (
PIXAA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1611 return (
PIXAA *)ERROR_PTR(
"naindex not defined", procName, NULL);
1617 return (
PIXAA *)ERROR_PTR(
"element count mismatch", procName, NULL);
1621 for (i = 0; i < n; i++) {
1625 for (j = 0; j < nn; j++) {
1669 PROCNAME(
"pixaSelectRange");
1672 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1674 return (
PIXA *)ERROR_PTR(
"invalid copyflag", procName, NULL);
1676 first = L_MAX(0, first);
1677 if (last <= 0) last = n - 1;
1679 return (
PIXA *)ERROR_PTR(
"invalid first", procName, NULL);
1681 return (
PIXA *)ERROR_PTR(
"first > last", procName, NULL);
1683 npix = last - first + 1;
1685 for (i = first; i <= last; i++) {
1715 l_int32 n, npixa, i;
1719 PROCNAME(
"pixaaSelectRange");
1722 return (
PIXAA *)ERROR_PTR(
"paas not defined", procName, NULL);
1724 return (
PIXAA *)ERROR_PTR(
"invalid copyflag", procName, NULL);
1726 first = L_MAX(0, first);
1727 if (last <= 0) last = n - 1;
1729 return (
PIXAA *)ERROR_PTR(
"invalid first", procName, NULL);
1731 return (
PIXAA *)ERROR_PTR(
"first > last", procName, NULL);
1733 npixa = last - first + 1;
1735 for (i = first; i <= last; i++) {
1771 PIXA *pixa1, *pixa2;
1774 PROCNAME(
"pixaaScaleToSize");
1777 return (
PIXAA *)ERROR_PTR(
"paas not defined", procName, NULL);
1778 if (wd <= 0 && hd <= 0)
1779 return (
PIXAA *)ERROR_PTR(
"neither wd nor hd > 0", procName, NULL);
1783 for (i = 0; i < n; i++) {
1819 l_int32 n, i, wd, hd;
1820 PIXA *pixa1, *pixa2;
1823 PROCNAME(
"pixaaScaleToSizeVar");
1826 return (
PIXAA *)ERROR_PTR(
"paas not defined", procName, NULL);
1828 return (
PIXAA *)ERROR_PTR(
"!nawd && !nahd", procName, NULL);
1832 return (
PIXAA *)ERROR_PTR(
"nawd wrong size", procName, NULL);
1834 return (
PIXAA *)ERROR_PTR(
"nahd wrong size", procName, NULL);
1836 for (i = 0; i < n; i++) {
1871 PROCNAME(
"pixaScaleToSize");
1874 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1876 if (wd <= 0 && hd <= 0)
1881 for (i = 0; i < n; i++) {
1884 pixCopyText(pix2, pix1);
1916 PROCNAME(
"pixaScaleToSizeRel");
1919 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1923 for (i = 0; i < n; i++) {
1929 L_WARNING(
"relative scale to size failed; use a copy\n", procName);
1957 BOXA *boxa1, *boxa2;
1961 PROCNAME(
"pixaScale");
1964 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
1965 if (scalex <= 0.0 || scaley <= 0.0)
1966 return (
PIXA *)ERROR_PTR(
"invalid scaling parameters", procName, NULL);
1970 for (i = 0; i < n; i++) {
1972 pix2 =
pixScale(pix1, scalex, scaley);
1973 pixCopyText(pix2, pix1);
2035 PROCNAME(
"pixaAddBorderGeneral");
2038 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, pixad);
2039 if (left < 0 || right < 0 || top < 0 || bot < 0)
2040 return (
PIXA *)ERROR_PTR(
"negative border added!", procName, pixad);
2041 if (pixad && (pixad != pixas))
2042 return (
PIXA *)ERROR_PTR(
"pixad defined but != pixas", procName, pixad);
2047 for (i = 0; i < n; i++) {
2059 for (i = 0; i < nbox; i++) {
2061 L_WARNING(
"box %d not found\n", procName, i);
2097 l_int32 i, j, m, mb, n;
2103 PROCNAME(
"pixaaFlattenToPixa");
2105 if (pnaindex) *pnaindex = NULL;
2107 return (
PIXA *)ERROR_PTR(
"paa not defined", procName, NULL);
2109 return (
PIXA *)ERROR_PTR(
"invalid copyflag", procName, NULL);
2113 *pnaindex = naindex;
2118 for (i = 0; i < n; i++) {
2122 for (j = 0; j < m; j++) {
2154 l_int32 minw, minh, maxw, maxh, minpw, minph, maxpw, maxph, i, n;
2157 PROCNAME(
"pixaaSizeRange");
2159 if (pminw) *pminw = 0;
2160 if (pminh) *pminh = 0;
2161 if (pmaxw) *pmaxw = 0;
2162 if (pmaxh) *pmaxh = 0;
2164 return ERROR_INT(
"paa not defined", procName, 1);
2165 if (!pminw && !pmaxw && !pminh && !pmaxh)
2166 return ERROR_INT(
"no data can be returned", procName, 1);
2168 minw = minh = 100000000;
2171 for (i = 0; i < n; i++) {
2185 if (pminw) *pminw = minw;
2186 if (pminh) *pminh = minh;
2187 if (pmaxw) *pmaxw = maxw;
2188 if (pmaxh) *pmaxh = maxh;
2208 l_int32 minw, minh, maxw, maxh, i, n, w, h;
2211 PROCNAME(
"pixaSizeRange");
2213 if (pminw) *pminw = 0;
2214 if (pminh) *pminh = 0;
2215 if (pmaxw) *pmaxw = 0;
2216 if (pmaxh) *pmaxh = 0;
2218 return ERROR_INT(
"pixa not defined", procName, 1);
2219 if (!pminw && !pmaxw && !pminh && !pmaxh)
2220 return ERROR_INT(
"no data can be returned", procName, 1);
2222 minw = minh = 1000000;
2225 for (i = 0; i < n; i++) {
2227 w = pixGetWidth(pix);
2228 h = pixGetHeight(pix);
2240 if (pminw) *pminw = minw;
2241 if (pminh) *pminh = minh;
2242 if (pmaxw) *pmaxw = maxw;
2243 if (pmaxh) *pmaxh = maxh;
2280 PROCNAME(
"pixaClipToPix");
2283 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
2285 return (
PIXA *)ERROR_PTR(
"pixs not defined", procName, NULL);
2289 return (
PIXA *)ERROR_PTR(
"pixad not made", procName, NULL);
2291 for (i = 0; i < n; i++) {
2329 PROCNAME(
"pixaClipToForeground");
2331 if (ppixad) *ppixad = NULL;
2332 if (pboxa) *pboxa = NULL;
2334 return ERROR_INT(
"pixas not defined", procName, 1);
2335 if (!ppixad && !pboxa)
2336 return ERROR_INT(
"no output requested", procName, 1);
2341 for (i = 0; i < n; i++) {
2370 l_int32 hascolor, maxdepth;
2372 PROCNAME(
"pixaGetRenderingDepth");
2375 return ERROR_INT(
"&depth not defined", procName, 1);
2378 return ERROR_INT(
"pixa not defined", procName, 1);
2407 l_int32 i, n, hascolor, d;
2411 PROCNAME(
"pixaHasColor");
2414 return ERROR_INT(
"&hascolor not defined", procName, 1);
2417 return ERROR_INT(
"pixa not defined", procName, 1);
2421 for (i = 0; i < n; i++) {
2423 if ((cmap = pixGetColormap(pix)) != NULL)
2425 d = pixGetDepth(pix);
2427 if (d == 32 || hascolor == 1) {
2452 PROCNAME(
"pixaAnyColormaps");
2455 return ERROR_INT(
"&hascmap not defined", procName, 1);
2458 return ERROR_INT(
"pixa not defined", procName, 1);
2461 for (i = 0; i < n; i++) {
2463 cmap = pixGetColormap(pix);
2488 l_int32 i, n, d, d0;
2491 PROCNAME(
"pixaGetDepthInfo");
2493 if (pmaxdepth) *pmaxdepth = 0;
2494 if (psame) *psame = TRUE;
2495 if (!pmaxdepth && !psame)
return 0;
2497 return ERROR_INT(
"pixa not defined", procName, 1);
2499 return ERROR_INT(
"pixa is empty", procName, 1);
2503 for (i = 0; i < n; i++) {
2509 if (d > maxd) maxd = d;
2512 if (pmaxdepth) *pmaxdepth = maxd;
2513 if (psame) *psame = same;
2535 l_int32 i, n, same, hascmap, maxdepth;
2538 PIXA *pixa1, *pixad;
2540 PROCNAME(
"pixaConvertToSameDepth");
2543 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
2547 return (
PIXA *)ERROR_PTR(
"no components", procName, NULL);
2551 for (i = 0; i < n; i++) {
2564 for (i = 0; i < n; i++) {
2619 l_int32 i, j, n, same, sameboxa;
2620 BOXA *boxa1, *boxa2;
2624 PROCNAME(
"pixaEqual");
2626 if (pnaindex) *pnaindex = NULL;
2628 return ERROR_INT(
"&same not defined", procName, 1);
2632 if (!pixa1 || !pixa2)
2633 return ERROR_INT(
"pixa1 and pixa2 not both defined", procName, 1);
2639 if (!boxa1 && !boxa2)
2641 if (boxa1 && !boxa2) {
2645 if (!boxa1 && boxa2) {
2649 if (boxa1 && boxa2) {
2650 boxaEqual(boxa1, boxa2, maxdist, &na, &sameboxa);
2659 for (i = 0; i < n; i++) {
2702 l_int32 i, n, nb, w, h;
2707 PROCNAME(
"pixaRotateOrth");
2710 return (
PIXA *)ERROR_PTR(
"pixas not defined", procName, NULL);
2711 if (rotation < 0 || rotation > 3)
2712 return (
PIXA *)ERROR_PTR(
"rotation not in {0,1,2,3}", procName, NULL);
2719 return (
PIXA *)ERROR_PTR(
"pixad not made", procName, NULL);
2720 for (i = 0; i < n; i++) {
2723 return (
PIXA *)ERROR_PTR(
"pixs not found", procName, NULL);
2762 PROCNAME(
"pixaSetFullSizeBoxa");
2765 return ERROR_INT(
"pixa not defined", procName, 1);
2767 L_INFO(
"pixa contains no pix\n", procName);
2773 for (i = 0; i < n; i++) {
PIXA * pixaSelectByPerimToAreaRatio(PIXA *pixas, l_float32 thresh, l_int32 type, l_int32 *pchanged)
pixaSelectByPerimToAreaRatio()
l_int32 pixRemoveWithIndicator(PIX *pixs, PIXA *pixa, NUMA *na)
pixRemoveWithIndicator()
PIXA * pixaSortByIndex(PIXA *pixas, NUMA *naindex, l_int32 copyflag)
pixaSortByIndex()
l_int32 pixCopyColormap(PIX *pixd, PIX *pixs)
pixCopyColormap()
l_int32 pixaReplacePix(PIXA *pixa, l_int32 index, PIX *pix, BOX *box)
pixaReplacePix()
PIXAA * pixaaCreate(l_int32 n)
pixaaCreate()
BOX * boxRotateOrth(BOX *box, l_int32 w, l_int32 h, l_int32 rotation)
boxRotateOrth()
l_int32 numaAddNumber(NUMA *na, l_float32 val)
numaAddNumber()
PIXAA * pixaSort2dByIndex(PIXA *pixas, NUMAA *naa, l_int32 copyflag)
pixaSort2dByIndex()
NUMA * numaGetSortIndex(NUMA *na, l_int32 sortorder)
numaGetSortIndex()
NUMA * pixaFindAreaFraction(PIXA *pixa)
pixaFindAreaFraction()
PIX * pixScaleToSizeRel(PIX *pixs, l_int32 delw, l_int32 delh)
pixScaleToSizeRel()
PIX * pixConvertTo32(PIX *pixs)
pixConvertTo32()
PIXA * pixaSelectWithIndicator(PIXA *pixas, NUMA *na, l_int32 *pchanged)
pixaSelectWithIndicator()
l_int32 pixaaAddPixa(PIXAA *paa, PIXA *pixa, l_int32 copyflag)
pixaaAddPixa()
l_int32 pixaGetDepthInfo(PIXA *pixa, l_int32 *pmaxdepth, l_int32 *psame)
pixaGetDepthInfo()
l_int32 numaaGetNumberCount(NUMAA *naa)
numaaGetNumberCount()
PIXA * pixaCreate(l_int32 n)
pixaCreate()
l_int32 pixZero(PIX *pix, l_int32 *pempty)
pixZero()
NUMA * numaGetBinSortIndex(NUMA *nas, l_int32 sortorder)
numaGetBinSortIndex()
l_int32 boxaEqual(BOXA *boxa1, BOXA *boxa2, l_int32 maxdist, NUMA **pnaindex, l_int32 *psame)
boxaEqual()
l_int32 numaGetMax(NUMA *na, l_float32 *pmaxval, l_int32 *pimaxloc)
numaGetMax()
PIXA * pixaaGetPixa(PIXAA *paa, l_int32 index, l_int32 accesstype)
pixaaGetPixa()
PIX * pixConvertTo8(PIX *pixs, l_int32 cmapflag)
pixConvertTo8()
l_int32 pixaaGetCount(PIXAA *paa, NUMA **pna)
pixaaGetCount()
PIXA * pixaRotateOrth(PIXA *pixas, l_int32 rotation)
pixaRotateOrth()
PIXA * pixaaFlattenToPixa(PIXAA *paa, NUMA **pnaindex, l_int32 copyflag)
pixaaFlattenToPixa()
l_int32 boxaAddBox(BOXA *boxa, BOX *box, l_int32 copyflag)
boxaAddBox()
PIX * pixCreate(l_int32 width, l_int32 height, l_int32 depth)
pixCreate()
PIX * pixSelectBySize(PIX *pixs, l_int32 width, l_int32 height, l_int32 connectivity, l_int32 type, l_int32 relation, l_int32 *pchanged)
pixSelectBySize()
PIXA * pixaConvertToSameDepth(PIXA *pixas)
pixaConvertToSameDepth()
NUMA * pixaFindWidthHeightRatio(PIXA *pixa)
pixaFindWidthHeightRatio()
NUMA * numaCreate(l_int32 n)
numaCreate()
void boxaDestroy(BOXA **pboxa)
boxaDestroy()
BOX * pixaGetBox(PIXA *pixa, l_int32 index, l_int32 accesstype)
pixaGetBox()
l_int32 pixaAnyColormaps(PIXA *pixa, l_int32 *phascmap)
pixaAnyColormaps()
NUMA * pixaFindPerimSizeRatio(PIXA *pixa)
pixaFindPerimSizeRatio()
l_int32 boxaGetBoxGeometry(BOXA *boxa, l_int32 index, l_int32 *px, l_int32 *py, l_int32 *pw, l_int32 *ph)
boxaGetBoxGeometry()
PIX * pixaDisplay(PIXA *pixa, l_int32 w, l_int32 h)
pixaDisplay()
PIXA * pixaScaleToSize(PIXA *pixas, l_int32 wd, l_int32 hd)
pixaScaleToSize()
PIX * pixCreateTemplate(PIX *pixs)
pixCreateTemplate()
PIX * pixClipRectangle(PIX *pixs, BOX *box, BOX **pboxc)
pixClipRectangle()
NUMA * pixaFindPerimToAreaRatio(PIXA *pixa)
pixaFindPerimToAreaRatio()
l_int32 pixaGetBoxaCount(PIXA *pixa)
pixaGetBoxaCount()
l_int32 pixaVerifyDepth(PIXA *pixa, l_int32 *psame, l_int32 *pmaxd)
pixaVerifyDepth()
PIX * pixaRenderComponent(PIX *pixs, PIXA *pixa, l_int32 index)
pixaRenderComponent()
l_int32 pixaSizeRange(PIXA *pixa, l_int32 *pminw, l_int32 *pminh, l_int32 *pmaxw, l_int32 *pmaxh)
pixaSizeRange()
l_int32 pixaEqual(PIXA *pixa1, PIXA *pixa2, l_int32 maxdist, NUMA **pnaindex, l_int32 *psame)
pixaEqual()
l_int32 pixAddWithIndicator(PIX *pixs, PIXA *pixa, NUMA *na)
pixAddWithIndicator()
PIXA * pixaCopy(PIXA *pixa, l_int32 copyflag)
pixaCopy()
PIXA * pixaSelectByNumConnComp(PIXA *pixas, l_int32 nmin, l_int32 nmax, l_int32 connectivity, l_int32 *pchanged)
pixaSelectByNumConnComp()
l_int32 pixRasterop(PIX *pixd, l_int32 dx, l_int32 dy, l_int32 dw, l_int32 dh, l_int32 op, PIX *pixs, l_int32 sx, l_int32 sy)
pixRasterop()
PIXAA * pixaaScaleToSize(PIXAA *paas, l_int32 wd, l_int32 hd)
pixaaScaleToSize()
BOXA * pixConnComp(PIX *pixs, PIXA **ppixa, l_int32 connectivity)
pixConnComp()
NUMA * numaaGetNuma(NUMAA *naa, l_int32 index, l_int32 accessflag)
numaaGetNuma()
l_int32 pixaSetFullSizeBoxa(PIXA *pixa)
pixaSetFullSizeBoxa()
static const l_int32 L_INSERT
PIX * pixSelectByAreaFraction(PIX *pixs, l_float32 thresh, l_int32 connectivity, l_int32 type, l_int32 *pchanged)
pixSelectByAreaFraction()
PIXAA * pixaaSelectRange(PIXAA *paas, l_int32 first, l_int32 last, l_int32 copyflag)
pixaaSelectRange()
PIXA * pixaSelectByWidthHeightRatio(PIXA *pixas, l_float32 thresh, l_int32 type, l_int32 *pchanged)
pixaSelectByWidthHeightRatio()
BOXA * boxaTransform(BOXA *boxas, l_int32 shiftx, l_int32 shifty, l_float32 scalex, l_float32 scaley)
boxaTransform()
l_int32 numaGetCount(NUMA *na)
numaGetCount()
l_int32 pixaHasColor(PIXA *pixa, l_int32 *phascolor)
pixaHasColor()
l_int32 pixaGetPixDimensions(PIXA *pixa, l_int32 index, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixaGetPixDimensions()
l_int32 pixaAddPix(PIXA *pixa, PIX *pix, l_int32 copyflag)
pixaAddPix()
l_int32 pixaGetRenderingDepth(PIXA *pixa, l_int32 *pdepth)
pixaGetRenderingDepth()
PIX * pixAnd(PIX *pixd, PIX *pixs1, PIX *pixs2)
pixAnd()
l_int32 pixCountConnComp(PIX *pixs, l_int32 connectivity, l_int32 *pcount)
pixCountConnComp()
PIXA * pixaSelectBySize(PIXA *pixas, l_int32 width, l_int32 height, l_int32 type, l_int32 relation, l_int32 *pchanged)
pixaSelectBySize()
PIXA * pixaSelectByPerimSizeRatio(PIXA *pixas, l_float32 thresh, l_int32 type, l_int32 *pchanged)
pixaSelectByPerimSizeRatio()
PIX * pixSelectByPerimToAreaRatio(PIX *pixs, l_float32 thresh, l_int32 connectivity, l_int32 type, l_int32 *pchanged)
pixSelectByPerimToAreaRatio()
PIXAA * pixaaScaleToSizeVar(PIXAA *paas, NUMA *nawd, NUMA *nahd)
pixaaScaleToSizeVar()
l_int32 boxGetGeometry(BOX *box, l_int32 *px, l_int32 *py, l_int32 *pw, l_int32 *ph)
boxGetGeometry()
BOX * boxAdjustSides(BOX *boxd, BOX *boxs, l_int32 delleft, l_int32 delright, l_int32 deltop, l_int32 delbot)
boxAdjustSides()
l_int32 pixaClipToForeground(PIXA *pixas, PIXA **ppixad, BOXA **pboxa)
pixaClipToForeground()
NUMA * numaMakeThresholdIndicator(NUMA *nas, l_float32 thresh, l_int32 type)
numaMakeThresholdIndicator()
PIX * pixScaleToSize(PIX *pixs, l_int32 wd, l_int32 hd)
pixScaleToSize()
void pixDestroy(PIX **ppix)
pixDestroy()
PIX * pixSelectByWidthHeightRatio(PIX *pixs, l_float32 thresh, l_int32 connectivity, l_int32 type, l_int32 *pchanged)
pixSelectByWidthHeightRatio()
PIX * pixRotateOrth(PIX *pixs, l_int32 quads)
pixRotateOrth()
BOX * boxaGetBox(BOXA *boxa, l_int32 index, l_int32 accessflag)
boxaGetBox()
PIXA * pixaScaleToSizeRel(PIXA *pixas, l_int32 delw, l_int32 delh)
pixaScaleToSizeRel()
PIXA * pixaSort(PIXA *pixas, l_int32 sorttype, l_int32 sortorder, NUMA **pnaindex, l_int32 copyflag)
pixaSort()
NUMA * numaCreateFromString(const char *str)
numaCreateFromString()
void numaDestroy(NUMA **pna)
numaDestroy()
PIXA * pixaSelectByAreaFraction(PIXA *pixas, l_float32 thresh, l_int32 type, l_int32 *pchanged)
pixaSelectByAreaFraction()
NUMA * pixaMakeSizeIndicator(PIXA *pixa, l_int32 width, l_int32 height, l_int32 type, l_int32 relation)
pixaMakeSizeIndicator()
l_int32 pixEqual(PIX *pix1, PIX *pix2, l_int32 *psame)
pixEqual()
PIXA * pixaAddBorderGeneral(PIXA *pixad, PIXA *pixas, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_uint32 val)
pixaAddBorderGeneral()
l_int32 numaaGetCount(NUMAA *naa)
numaaGetCount()
PIXA * pixaScale(PIXA *pixas, l_float32 scalex, l_float32 scaley)
pixaScale()
PIX * pixaGetPix(PIXA *pixa, l_int32 index, l_int32 accesstype)
pixaGetPix()
PIX * pixSelectByPerimSizeRatio(PIX *pixs, l_float32 thresh, l_int32 connectivity, l_int32 type, l_int32 *pchanged)
pixSelectByPerimSizeRatio()
l_int32 pixClipToForeground(PIX *pixs, PIX **ppixd, BOX **pbox)
pixClipToForeground()
PIXA * pixaBinSort(PIXA *pixas, l_int32 sorttype, l_int32 sortorder, NUMA **pnaindex, l_int32 copyflag)
pixaBinSort()
l_int32 pixaAddBox(PIXA *pixa, BOX *box, l_int32 copyflag)
pixaAddBox()
BOXA * boxaCreate(l_int32 n)
boxaCreate()
PIX * pixCopy(PIX *pixd, PIX *pixs)
pixCopy()
PIXA * pixaSelectWithString(PIXA *pixas, const char *str, l_int32 *perror)
pixaSelectWithString()
PIXA * pixaClipToPix(PIXA *pixas, PIX *pixs)
pixaClipToPix()
void boxDestroy(BOX **pbox)
boxDestroy()
l_int32 boxaGetExtent(BOXA *boxa, l_int32 *pw, l_int32 *ph, BOX **pbox)
boxaGetExtent()
l_int32 boxaGetCount(BOXA *boxa)
boxaGetCount()
l_int32 numaGetIValue(NUMA *na, l_int32 index, l_int32 *pival)
numaGetIValue()
l_int32 pixGetDimensions(PIX *pix, l_int32 *pw, l_int32 *ph, l_int32 *pd)
pixGetDimensions()
PIXA * pixaSelectRange(PIXA *pixas, l_int32 first, l_int32 last, l_int32 copyflag)
pixaSelectRange()
l_int32 pixaaSizeRange(PIXAA *paa, l_int32 *pminw, l_int32 *pminh, l_int32 *pmaxw, l_int32 *pmaxh)
pixaaSizeRange()
PIX * pixScale(PIX *pixs, l_float32 scalex, l_float32 scaley)
pixScale()
void pixaDestroy(PIXA **ppixa)
pixaDestroy()
l_int32 pixaSetBoxa(PIXA *pixa, BOXA *boxa, l_int32 accesstype)
pixaSetBoxa()
BOX * boxCreate(l_int32 x, l_int32 y, l_int32 w, l_int32 h)
boxCreate()
l_int32 pixaGetCount(PIXA *pixa)
pixaGetCount()
PIX * pixAddBorderGeneral(PIX *pixs, l_int32 left, l_int32 right, l_int32 top, l_int32 bot, l_uint32 val)
pixAddBorderGeneral()
l_int32 boxaReplaceBox(BOXA *boxa, l_int32 index, BOX *box)
boxaReplaceBox()
l_int32 pixcmapHasColor(PIXCMAP *cmap, l_int32 *pcolor)
pixcmapHasColor()
BOXA * pixaGetBoxa(PIXA *pixa, l_int32 accesstype)
pixaGetBoxa()