MCPcopy Create free account
hub / github.com/creatale/node-dv / pixUnionOfMorphOps

Function pixUnionOfMorphOps

deps/leptonica/src/morphapp.c:501–542  ·  view source on GitHub ↗

-----------------------------------------------------------------* * Union and intersection of parallel composite operations * *-----------------------------------------------------------------*/ ! * \brief pixUnionOfMorphOps() * * \param[in] pixs binary * \param[in] sela * \param[in] type L_MORPH_DILATE, etc. * \return pixd union of the specified morphological operatio

Source from the content-addressed store, hash-verified

499 * on pixs for each Sel in the Sela, or NULL on error
500 */
501PIX *
502pixUnionOfMorphOps(PIX *pixs,
503 SELA *sela,
504 l_int32 type)
505{
506l_int32 n, i;
507PIX *pixt, *pixd;
508SEL *sel;
509
510 PROCNAME("pixUnionOfMorphOps");
511
512 if (!pixs || pixGetDepth(pixs) != 1)
513 return (PIX *)ERROR_PTR("pixs undefined or not 1 bpp", procName, NULL);
514 if (!sela)
515 return (PIX *)ERROR_PTR("sela not defined", procName, NULL);
516 n = selaGetCount(sela);
517 if (n == 0)
518 return (PIX *)ERROR_PTR("no sels in sela", procName, NULL);
519 if (type != L_MORPH_DILATE && type != L_MORPH_ERODE &&
520 type != L_MORPH_OPEN && type != L_MORPH_CLOSE &&
521 type != L_MORPH_HMT)
522 return (PIX *)ERROR_PTR("invalid type", procName, NULL);
523
524 pixd = pixCreateTemplate(pixs);
525 for (i = 0; i < n; i++) {
526 sel = selaGetSel(sela, i);
527 if (type == L_MORPH_DILATE)
528 pixt = pixDilate(NULL, pixs, sel);
529 else if (type == L_MORPH_ERODE)
530 pixt = pixErode(NULL, pixs, sel);
531 else if (type == L_MORPH_OPEN)
532 pixt = pixOpen(NULL, pixs, sel);
533 else if (type == L_MORPH_CLOSE)
534 pixt = pixClose(NULL, pixs, sel);
535 else /* type == L_MORPH_HMT */
536 pixt = pixHMT(NULL, pixs, sel);
537 pixOr(pixd, pixd, pixt);
538 pixDestroy(&pixt);
539 }
540
541 return pixd;
542}
543
544
545/*!

Callers

nothing calls this directly

Calls 11

pixGetDepthFunction · 0.85
selaGetCountFunction · 0.85
pixCreateTemplateFunction · 0.85
selaGetSelFunction · 0.85
pixDilateFunction · 0.85
pixErodeFunction · 0.85
pixOpenFunction · 0.85
pixCloseFunction · 0.85
pixHMTFunction · 0.85
pixOrFunction · 0.85
pixDestroyFunction · 0.85

Tested by

no test coverage detected