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

Function kernelNormalize

deps/leptonica/src/kernel.c:409–440  ·  view source on GitHub ↗

----------------------------------------------------------------------* * Normalize/Invert * *----------------------------------------------------------------------*/ ! * \brief kernelNormalize() * * \param[in] kels source kel, to be normalized * \param[in] normsum desired sum of elements in keld * \return keld normalized version

Source from the content-addressed store, hash-verified

407 * </pre>
408 */
409L_KERNEL *
410kernelNormalize(L_KERNEL *kels,
411 l_float32 normsum)
412{
413l_int32 i, j, sx, sy, cx, cy;
414l_float32 sum, factor;
415L_KERNEL *keld;
416
417 PROCNAME("kernelNormalize");
418
419 if (!kels)
420 return (L_KERNEL *)ERROR_PTR("kels not defined", procName, NULL);
421
422 kernelGetSum(kels, &sum);
423 if (L_ABS(sum) < 0.00001) {
424 L_WARNING("null sum; not normalizing; returning a copy\n", procName);
425 return kernelCopy(kels);
426 }
427
428 kernelGetParameters(kels, &sy, &sx, &cy, &cx);
429 if ((keld = kernelCreate(sy, sx)) == NULL)
430 return (L_KERNEL *)ERROR_PTR("keld not made", procName, NULL);
431 keld->cy = cy;
432 keld->cx = cx;
433
434 factor = normsum / sum;
435 for (i = 0; i < sy; i++)
436 for (j = 0; j < sx; j++)
437 keld->data[i][j] = factor * kels->data[i][j];
438
439 return keld;
440}
441
442
443/*!

Callers 4

pixConvolveFunction · 0.85
pixConvolveSepFunction · 0.85
fpixConvolveFunction · 0.85
fpixConvolveSepFunction · 0.85

Calls 4

kernelGetSumFunction · 0.85
kernelCopyFunction · 0.85
kernelGetParametersFunction · 0.85
kernelCreateFunction · 0.85

Tested by

no test coverage detected