本文整理汇总了C++中pixDisplayWithTitle函数的典型用法代码示例。如果您正苦于以下问题:C++ pixDisplayWithTitle函数的具体用法?C++ pixDisplayWithTitle怎么用?C++ pixDisplayWithTitle使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pixDisplayWithTitle函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoJp2kTest1
void DoJp2kTest1(L_REGPARAMS *rp,
const char *fname)
{
char buf[256];
l_int32 w, h;
BOX *box;
PIX *pix1, *pix2, *pix3;
pix1 = pixRead(fname);
pixGetDimensions(pix1, &w, &h, NULL);
box = boxCreate(w / 4, h / 4, w / 2, h / 2);
snprintf(buf, sizeof(buf), "/tmp/lept/jp2kio.%03d.jp2", rp->index + 1);
pixWrite(buf, pix1, IFF_JP2);
regTestCheckFile(rp, buf);
pix2 = pixRead(buf);
pixDisplayWithTitle(pix2, 0, 100, "1", rp->display);
pixDestroy(&pix1);
pixDestroy(&pix2);
pix1 = pixReadJp2k(buf, 1, box, 0, 0); /* just read the box region */
snprintf(buf, sizeof(buf), "/tmp/lept/jp2kio.%03d.jp2", rp->index + 1);
pixWriteJp2k(buf, pix1, 38, 0, 0, 0);
regTestCheckFile(rp, buf);
pix2 = pixRead(buf);
regTestWritePixAndCheck(rp, pix2, IFF_JP2);
pixDisplayWithTitle(pix2, 500, 100, "2", rp->display);
pix3 = pixReadJp2k(buf, 2, NULL, 0, 0); /* read image at 2x reduction */
regTestWritePixAndCheck(rp, pix3, IFF_JP2);
pixDisplayWithTitle(pix3, 1000, 100, "3", rp->display);
pixDestroy(&pix1);
pixDestroy(&pix2);
pixDestroy(&pix3);
return;
}
示例2: MakeWordBoxes2
void
MakeWordBoxes2(PIX *pixs,
l_int32 reduction,
L_REGPARAMS *rp)
{
l_int32 default_minwidth = 10;
l_int32 default_minheight = 10;
l_int32 default_maxwidth = 400;
l_int32 default_maxheight = 70;
l_int32 minwidth, minheight, maxwidth, maxheight;
BOXA *boxa1, *boxa2;
NUMA *na;
PIX *pixd1, *pixd2;
PIXA *pixa;
minwidth = default_minwidth / reduction;
minheight = default_minheight / reduction;
maxwidth = default_maxwidth / reduction;
maxheight = default_maxheight / reduction;
/* Get the word boxes */
pixGetWordsInTextlines(pixs, reduction, minwidth, minheight,
maxwidth, maxheight, &boxa1, &pixa, &na);
pixaDestroy(&pixa);
numaDestroy(&na);
if (reduction == 1)
boxa2 = boxaCopy(boxa1, L_CLONE);
else
boxa2 = boxaTransform(boxa1, 0, 0, 2.0, 2.0);
pixd1 = pixConvertTo8(pixs, 1);
pixRenderBoxaArb(pixd1, boxa2, 2, 255, 0, 0);
regTestWritePixAndCheck(rp, pixd1, IFF_PNG);
pixDisplayWithTitle(pixd1, 800, 100, NULL, rp->display);
boxaDestroy(&boxa1);
boxaDestroy(&boxa2);
/* Do it again with this interface. The result should be the same. */
pixGetWordBoxesInTextlines(pixs, reduction, minwidth, minheight,
maxwidth, maxheight, &boxa1, NULL);
if (reduction == 1)
boxa2 = boxaCopy(boxa1, L_CLONE);
else
boxa2 = boxaTransform(boxa1, 0, 0, 2.0, 2.0);
pixd2 = pixConvertTo8(pixs, 1);
pixRenderBoxaArb(pixd2, boxa2, 2, 255, 0, 0);
if (regTestComparePix(rp, pixd1, pixd2)) {
L_ERROR("pix not the same", "MakeWordBoxes2");
pixDisplayWithTitle(pixd2, 800, 100, NULL, rp->display);
}
pixDestroy(&pixd1);
pixDestroy(&pixd2);
boxaDestroy(&boxa1);
boxaDestroy(&boxa2);
return;
}
示例3: main
l_int32 main(int argc,
char **argv)
{
l_uint32 *colors;
l_int32 ncolors;
PIX *pix1, *pix2, *pix3;
L_REGPARAMS *rp;
if (regTestSetup(argc, argv, &rp))
return 1;
/* Find the most populated colors */
pix1 = pixRead("fish24.jpg");
pixGetMostPopulatedColors(pix1, 2, 3, 10, &colors, NULL);
pix2 = pixDisplayColorArray(colors, 10, 190, 5, 1);
pixDisplayWithTitle(pix2, 0, 0, NULL, rp->display);
regTestWritePixAndCheck(rp, pix2, IFF_PNG); /* 0 */
lept_free(colors);
pixDestroy(&pix2);
/* Do a simple color quantization with sigbits = 2 */
pix2 = pixSimpleColorQuantize(pix1, 2, 3, 10);
pixDisplayWithTitle(pix2, 0, 400, NULL, rp->display);
regTestWritePixAndCheck(rp, pix2, IFF_PNG); /* 1 */
pix3 = pixRemoveColormap(pix2, REMOVE_CMAP_TO_FULL_COLOR);
regTestComparePix(rp, pix2, pix3); /* 2 */
pixNumColors(pix3, 1, &ncolors);
regTestCompareValues(rp, ncolors, 10, 0.0); /* 3 */
pixDestroy(&pix1);
pixDestroy(&pix2);
pixDestroy(&pix3);
/* Do a simple color quantization with sigbits = 3 */
pix1 = pixRead("wyom.jpg");
pixNumColors(pix1, 1, &ncolors); /* >255, so should give 0 */
regTestCompareValues(rp, ncolors, 0, 0.0); /* 4 */
pix2 = pixSimpleColorQuantize(pix1, 3, 3, 20);
pixDisplayWithTitle(pix2, 1000, 0, NULL, rp->display);
regTestWritePixAndCheck(rp, pix2, IFF_PNG); /* 5 */
ncolors = pixcmapGetCount(pixGetColormap(pix2));
regTestCompareValues(rp, ncolors, 20, 0.0); /* 6 */
pixDestroy(&pix1);
pixDestroy(&pix2);
/* Find the number of perceptually significant gray intensities */
pix1 = pixRead("marge.jpg");
pix2 = pixConvertTo8(pix1, 0);
pixNumSignificantGrayColors(pix2, 20, 236, 0.0001, 1, &ncolors);
regTestCompareValues(rp, ncolors, 219, 0.0); /* 7 */
pixDestroy(&pix1);
pixDestroy(&pix2);
return regTestCleanup(rp);
}
示例4: pixDisplay
/*!
* pixDisplay()
*
* Input: pix (1, 2, 4, 8, 16, 32 bpp)
* x, y (location of display frame on the screen)
* Return: 0 if OK; 1 on error
*
* Notes:
* (1) This displays the image using xzgv, xli or xv on Unix,
* or i_view on Windows. The display program must be on
* your $PATH variable. It is chosen by setting the global
* var_DISPLAY_PROG, using l_chooseDisplayProg().
* Default on Unix is xzgv.
* (2) Images with dimensions larger than MAX_DISPLAY_WIDTH or
* MAX_DISPLAY_HEIGHT are downscaled to fit those constraints.
* This is particulary important for displaying 1 bpp images
* with xv, because xv automatically downscales large images
* by subsampling, which looks poor. For 1 bpp, we use
* scale-to-gray to get decent-looking anti-aliased images.
* In all cases, we write a temporary file to /tmp, that is
* read by the display program.
* (3) For spp == 4, we call pixDisplayLayersRGBA() to show 3
* versions of the image: the image with a fully opaque
* alpha, the alpha, and the image as it would appear with
* a white background.
* (4) Note: this function uses a static internal variable to number
* output files written by a single process. Behavior with a
* shared library may be unpredictable.
*/
l_int32
pixDisplay(PIX *pixs,
l_int32 x,
l_int32 y)
{
return pixDisplayWithTitle(pixs, x, y, NULL, 1);
}
示例5: main
int main(int argc,
char **argv)
{
PIX *pixs, *pixd;
PIXA *pixa;
L_REGPARAMS *rp;
if (regTestSetup(argc, argv, &rp))
return 1;
pixs = pixRead("stampede2.jpg");
pixa = pixaCreate(0);
pixSaveTiled(pixs, pixa, 1.0, 1, 20, 8);
AddTestSet(pixa, pixs, L_SOBEL_EDGE, 18, 40, 40, 0.7, -25, 280, 128);
AddTestSet(pixa, pixs, L_TWO_SIDED_EDGE, 18, 40, 40, 0.7, -25, 280, 128);
AddTestSet(pixa, pixs, L_SOBEL_EDGE, 10, 40, 40, 0.7, -15, 305, 128);
AddTestSet(pixa, pixs, L_TWO_SIDED_EDGE, 10, 40, 40, 0.7, -15, 305, 128);
AddTestSet(pixa, pixs, L_SOBEL_EDGE, 15, 40, 40, 0.6, -45, 285, 158);
AddTestSet(pixa, pixs, L_TWO_SIDED_EDGE, 15, 40, 40, 0.6, -45, 285, 158);
pixDestroy(&pixs);
pixd = pixaDisplay(pixa, 0, 0);
regTestWritePixAndCheck(rp, pixd, IFF_JFIF_JPEG); /* 0 */
pixDisplayWithTitle(pixd, 100, 100, NULL, rp->display);
pixDestroy(&pixd);
pixaDestroy(&pixa);
return regTestCleanup(rp);
}
示例6: test_1bpp_color
static l_int32
test_1bpp_color(L_REGPARAMS *rp)
{
l_int32 same, transp;
FILE *fp;
PIX *pix1, *pix2;
PIXCMAP *cmap;
pix1 = pixRead("feyn-fract2.tif");
cmap = pixcmapCreate(1);
pixSetColormap(pix1, cmap);
pixcmapAddRGBA(cmap, 180, 130, 220, 255); /* color, opaque */
pixcmapAddRGBA(cmap, 20, 120, 0, 255); /* color, opaque */
pixWrite("/tmp/regout/1bpp-color.png", pix1, IFF_PNG);
pix2 = pixRead("/tmp/regout/1bpp-color.png");
pixEqual(pix1, pix2, &same);
if (same)
fprintf(stderr, "1bpp_color: success\n");
else
fprintf(stderr, "1bpp_color: bad output\n");
pixDisplayWithTitle(pix2, 700, 100, NULL, rp->display);
pixDestroy(&pix1);
pixDestroy(&pix2);
fp = fopenReadStream("/tmp/regout/1bpp-color.png");
fgetPngColormapInfo(fp, &cmap, &transp);
fclose(fp);
if (transp)
fprintf(stderr, "1bpp_color: error -- transparency found!\n");
else
fprintf(stderr, "1bpp_color: correct -- no transparency found\n");
if (rp->display) pixcmapWriteStream(stderr, cmap);
pixcmapDestroy(&cmap);
return same;
}
示例7: DoWebpTest1
void DoWebpTest1(L_REGPARAMS *rp,
const char *fname)
{
char buf[256];
PIX *pixs, *pix1, *pix2;
startTimer();
pixs = pixRead(fname);
fprintf(stderr, "Time to read jpg: %7.3f\n", stopTimer());
startTimer();
snprintf(buf, sizeof(buf), "/tmp/lept/webp/webpio.%d.webp", rp->index + 1);
pixWrite(buf, pixs, IFF_WEBP);
fprintf(stderr, "Time to write webp: %7.3f\n", stopTimer());
regTestCheckFile(rp, buf);
startTimer();
pix1 = pixRead(buf);
fprintf(stderr, "Time to read webp: %7.3f\n", stopTimer());
pix2 = pixConvertTo32(pixs);
regTestCompareSimilarPix(rp, pix1, pix2, 20, 0.1, 0);
pixDisplayWithTitle(pix1, 100, 100, "pix1", rp->display);
pixDestroy(&pixs);
pixDestroy(&pix1);
pixDestroy(&pix2);
return;
}
示例8: test_8bpp_trans
static l_int32
test_8bpp_trans(L_REGPARAMS *rp)
{
l_int32 same, transp;
FILE *fp;
PIX *pix1, *pix2, *pix3;
PIXCMAP *cmap;
pix1 = pixRead("wyom.jpg");
pix2 = pixColorSegment(pix1, 75, 10, 8, 7);
cmap = pixGetColormap(pix2);
pixcmapSetAlpha(cmap, 0, 0); /* set blueish sky color to transparent */
pixWrite("/tmp/regout/8bpp-trans.png", pix2, IFF_PNG);
pix3 = pixRead("/tmp/regout/8bpp-trans.png");
pixEqual(pix2, pix3, &same);
if (same)
fprintf(stderr, "8bpp_trans: success\n");
else
fprintf(stderr, "8bpp_trans: bad output\n");
pixDisplayWithTitle(pix3, 700, 0, NULL, rp->display);
pixDestroy(&pix1);
pixDestroy(&pix2);
pixDestroy(&pix3);
fp = fopenReadStream("/tmp/regout/8bpp-trans.png");
fgetPngColormapInfo(fp, &cmap, &transp);
fclose(fp);
if (transp)
fprintf(stderr, "8bpp_trans: correct -- transparency found\n");
else
fprintf(stderr, "8bpp_trans: error -- no transparency found!\n");
if (rp->display) pixcmapWriteStream(stderr, cmap);
pixcmapDestroy(&cmap);
return same;
}
示例9: main
int main(int argc,
char **argv)
{
SEL *sel1, *sel2, *sel3, *sel4;
SELA *sela;
PIX *pix, *pixd;
PIXA *pixa;
static char mainName[] = "flipselgen";
if (argc != 1)
return ERROR_INT(" Syntax: flipselgen", mainName, 1);
sela = selaCreate(0);
sel1 = selCreateFromString(textsel1, 5, 6, "flipsel1");
sel2 = selCreateFromString(textsel2, 5, 6, "flipsel2");
sel3 = selCreateFromString(textsel3, 5, 6, "flipsel3");
sel4 = selCreateFromString(textsel4, 5, 6, "flipsel4");
selaAddSel(sela, sel1, NULL, 0);
selaAddSel(sela, sel2, NULL, 0);
selaAddSel(sela, sel3, NULL, 0);
selaAddSel(sela, sel4, NULL, 0);
pixa = pixaCreate(4);
pix = selDisplayInPix(sel1, 23, 2);
pixDisplayWithTitle(pix, 100, 100, "sel1", DFLAG);
pixaAddPix(pixa, pix, L_INSERT);
pix = selDisplayInPix(sel2, 23, 2);
pixDisplayWithTitle(pix, 275, 100, "sel2", DFLAG);
pixaAddPix(pixa, pix, L_INSERT);
pix = selDisplayInPix(sel3, 23, 2);
pixDisplayWithTitle(pix, 450, 100, "sel3", DFLAG);
pixaAddPix(pixa, pix, L_INSERT);
pix = selDisplayInPix(sel4, 23, 2);
pixDisplayWithTitle(pix, 625, 100, "sel4", DFLAG);
pixaAddPix(pixa, pix, L_INSERT);
pixd = pixaDisplayTiled(pixa, 800, 0, 15);
pixDisplayWithTitle(pixd, 100, 300, "allsels", DFLAG);
pixDestroy(&pixd);
pixaDestroy(&pixa);
if (fhmtautogen(sela, INDEX, NULL))
return ERROR_INT(" Generation failed", mainName, 1);
selaDestroy(&sela);
return 0;
}
示例10: ptaaRemoveShortLines
/*!
* ptaaRemoveShortLines()
*
* Input: pixs (1 bpp)
* ptaas (input lines)
* fract (minimum fraction of longest line to keep)
* debugflag
* Return: ptaad (containing only lines of sufficient length),
* or null on error
*/
PTAA *
ptaaRemoveShortLines(PIX *pixs,
PTAA *ptaas,
l_float32 fract,
l_int32 debugflag)
{
l_int32 w, n, i, index, maxlen, len;
l_float32 minx, maxx;
NUMA *na, *naindex;
PIX *pixt1, *pixt2;
PTA *pta;
PTAA *ptaad;
PROCNAME("ptaaRemoveShortLines");
if (!pixs || pixGetDepth(pixs) != 1)
return (PTAA *)ERROR_PTR("pixs undefined or not 1 bpp", procName, NULL);
if (!ptaas)
return (PTAA *)ERROR_PTR("ptaas undefined", procName, NULL);
pixGetDimensions(pixs, &w, NULL, NULL);
n = ptaaGetCount(ptaas);
ptaad = ptaaCreate(n);
na = numaCreate(n);
for (i = 0; i < n; i++) {
pta = ptaaGetPta(ptaas, i, L_CLONE);
ptaGetRange(pta, &minx, &maxx, NULL, NULL);
numaAddNumber(na, maxx - minx + 1);
ptaDestroy(&pta);
}
/* Sort by length and find all that are long enough */
naindex = numaGetSortIndex(na, L_SORT_DECREASING);
numaGetIValue(naindex, 0, &index);
numaGetIValue(na, index, &maxlen);
if (maxlen < 0.5 * w)
L_WARNING("lines are relatively short", procName);
pta = ptaaGetPta(ptaas, index, L_CLONE);
ptaaAddPta(ptaad, pta, L_INSERT);
for (i = 1; i < n; i++) {
numaGetIValue(naindex, i, &index);
numaGetIValue(na, index, &len);
if (len < fract * maxlen) break;
pta = ptaaGetPta(ptaas, index, L_CLONE);
ptaaAddPta(ptaad, pta, L_INSERT);
}
if (debugflag) {
pixt1 = pixCopy(NULL, pixs);
pixt2 = pixDisplayPtaa(pixt1, ptaad);
pixDisplayWithTitle(pixt2, 0, 200, "pix4", 1);
pixDestroy(&pixt1);
pixDestroy(&pixt2);
}
numaDestroy(&na);
numaDestroy(&naindex);
return ptaad;
}
示例11: dewarpApplyDisparity
/*!
* dewarpApplyDisparity()
*
* Input: dew
* pixs (image to be modified; can be 1, 8 or 32 bpp)
* debugflag
* Return: 0 if OK, 1 on error
*
* Notes:
* (1) This applies the vertical disparity array to the specified
* image. For src pixels above the image, we use the pixels
* in the first raster line.
* (2) This works with stripped models. If the full resolution
* disparity array(s) are missing, they are remade.
*/
l_int32
dewarpApplyDisparity(L_DEWARP *dew,
PIX *pixs,
l_int32 debugflag)
{
PIX *pixv, *pixd;
PROCNAME("dewarpApplyDisparity");
if (!dew)
return ERROR_INT("dew not defined", procName, 1);
if (dew->success == 0)
return ERROR_INT("model failed to build", procName, 1);
if (!pixs)
return ERROR_INT("pixs not defined", procName, 1);
/* Generate the full res disparity arrays if they don't exist;
* e.g., if they've been minimized or read from file. */
dewarpPopulateFullRes(dew);
pixDestroy(&dew->pixd); /* remove any previous one */
if ((pixv = pixApplyVerticalDisparity(pixs, dew->fullvdispar)) == NULL)
return ERROR_INT("pixv not made", procName, 1);
if (debugflag) {
pixDisplayWithTitle(pixv, 300, 0, "pixv", 1);
pixWriteTempfile("/tmp", "pixv.png", pixv, IFF_PNG, NULL);
}
if (dew->applyhoriz) {
if ((pixd = pixApplyHorizontalDisparity(pixv, dew->fullhdispar,
dew->extraw)) == NULL)
return ERROR_INT("pixd not made", procName, 1);
pixDestroy(&pixv);
dew->pixd = pixd;
if (debugflag) {
pixDisplayWithTitle(pixd, 600, 0, "pixd", 1);
pixWriteTempfile("/tmp", "pixd.png", pixd, IFF_PNG, NULL);
}
}
else
dew->pixd = pixv;
return 0;
}
示例12: main
main(int argc,
char **argv)
{
l_int32 i, j;
PIX *pixs, *pixt, *pixd;
L_REGPARAMS *rp;
if (regTestSetup(argc, argv, &rp))
return 1;
pixs = pixRead("test8.jpg");
pixt = pixCopy(NULL, pixs);
/* Copy, in-place and one COLUMN at a time, from the right
side to the left side. */
for (j = 0; j < 200; j++)
pixRasterop(pixs, 20 + j, 20, 1, 250, PIX_SRC, pixs, 250 + j, 20);
pixDisplayWithTitle(pixs, 50, 50, "in-place copy", rp->display);
/* Copy, in-place and one ROW at a time, from the right
side to the left side. */
for (i = 0; i < 250; i++)
pixRasterop(pixt, 20, 20 + i, 200, 1, PIX_SRC, pixt, 250, 20 + i);
/* Test */
regTestComparePix(rp, pixs, pixt); /* 0 */
pixDestroy(&pixs);
pixDestroy(&pixt);
/* Show the mirrored border, which uses the general
pixRasterop() on an image in-place. */
pixs = pixRead("test8.jpg");
pixt = pixRemoveBorder(pixs, 40);
pixd = pixAddMirroredBorder(pixt, 40, 40, 40, 40);
regTestWritePixAndCheck(rp, pixd, IFF_PNG); /* 1 */
pixDisplayWithTitle(pixd, 650, 50, "mirrored border", rp->display);
pixDestroy(&pixs);
pixDestroy(&pixt);
pixDestroy(&pixd);
return regTestCleanup(rp);
}
示例13: PixaSaveDisplay
static void
PixaSaveDisplay(PIXA *pixa, L_REGPARAMS *rp)
{
PIX *pixd;
pixd = pixaDisplay(pixa, 0, 0);
regTestWritePixAndCheck(rp, pixd, IFF_JFIF_JPEG);
pixDisplayWithTitle(pixd, 100, 100, NULL, rp->display);
pixDestroy(&pixd);
pixaDestroy(&pixa);
return;
}
示例14: main
main(int argc,
char **argv)
{
l_int32 i, ival, n;
l_float32 f, val;
GPLOT *gplot;
NUMA *na1, *na2, *na3;
PIX *pixt;
L_REGPARAMS *rp;
if (regTestSetup(argc, argv, &rp))
return 1;
/* Generate a 1D signal and plot it */
na1 = numaCreate(500);
for (i = 0; i < 500; i++) {
f = 48.3 * sin(0.13 * (l_float32)i);
f += 63.4 * cos(0.21 * (l_float32)i);
numaAddNumber(na1, f);
}
gplot = gplotCreate("/tmp/extrema", GPLOT_PNG, "Extrema test", "x", "y");
gplotAddPlot(gplot, NULL, na1, GPLOT_LINES, "plot 1");
/* Find the local min and max and plot them */
na2 = numaFindExtrema(na1, 38.3);
n = numaGetCount(na2);
na3 = numaCreate(n);
for (i = 0; i < n; i++) {
numaGetIValue(na2, i, &ival);
numaGetFValue(na1, ival, &val);
numaAddNumber(na3, val);
}
gplotAddPlot(gplot, na2, na3, GPLOT_POINTS, "plot 2");
gplotMakeOutput(gplot);
#ifndef _WIN32
sleep(1);
#else
Sleep(1000);
#endif /* _WIN32 */
regTestCheckFile(rp, "/tmp/extrema.png"); /* 0 */
pixt = pixRead("/tmp/extrema.png");
pixDisplayWithTitle(pixt, 100, 100, "Extrema test", rp->display);
pixDestroy(&pixt);
gplotDestroy(&gplot);
numaDestroy(&na1);
numaDestroy(&na2);
numaDestroy(&na3);
return regTestCleanup(rp);
}
示例15: PlotBoxa
void static
PlotBoxa(L_REGPARAMS *rp,
l_int32 index)
{
BOXA *boxa1, *boxa2;
PIX *pix1, *pix2, *pix3;
PIXA *pixa;
boxa1 = boxaRead(boxafiles[index]);
/* Read and display initial boxa */
boxaPlotSizes(boxa1, NULL, NULL, NULL, &pix1);
boxaPlotSides(boxa1, NULL, NULL, NULL, NULL, NULL, &pix2);
pixa = pixaCreate(2);
pixaAddPix(pixa, pix1, L_INSERT);
pixaAddPix(pixa, pix2, L_INSERT);
pix3 = pixaDisplayTiledInColumns(pixa, 2, 1.0, 20, 2);
regTestWritePixAndCheck(rp, pix3, IFF_PNG); /* 39, 41, 43 */
pixDisplayWithTitle(pix3, 0 + 800 * index, 500, NULL, rp->display);
pixDestroy(&pix3);
pixaDestroy(&pixa);
/* Read and display reconciled boxa */
boxa2 = boxaReconcileSizeByMedian(boxa1, L_CHECK_BOTH, 0.05, 0.04, 1.03,
NULL, NULL, NULL);
boxaPlotSizes(boxa2, NULL, NULL, NULL, &pix1);
boxaPlotSides(boxa2, NULL, NULL, NULL, NULL, NULL, &pix2);
pixa = pixaCreate(2);
pixaAddPix(pixa, pix1, L_INSERT);
pixaAddPix(pixa, pix2, L_INSERT);
pix3 = pixaDisplayTiledInColumns(pixa, 2, 1.0, 20, 2);
regTestWritePixAndCheck(rp, pix3, IFF_PNG); /* 40, 42, 44 */
pixDisplayWithTitle(pix3, 0 + 800 * index, 920, NULL, rp->display);
pixDestroy(&pix3);
pixaDestroy(&pixa);
boxaDestroy(&boxa1);
boxaDestroy(&boxa2);
}