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

Function kernelReadStream

deps/leptonica/src/kernel.c:554–587  ·  view source on GitHub ↗

! * \brief kernelReadStream() * * \param[in] fp file stream * \return kernel, or NULL on error */

Source from the content-addressed store, hash-verified

552 * \return kernel, or NULL on error
553 */
554L_KERNEL *
555kernelReadStream(FILE *fp)
556{
557l_int32 sy, sx, cy, cx, i, j, ret, version, ignore;
558L_KERNEL *kel;
559
560 PROCNAME("kernelReadStream");
561
562 if (!fp)
563 return (L_KERNEL *)ERROR_PTR("stream not defined", procName, NULL);
564
565 ret = fscanf(fp, " Kernel Version %d\n", &version);
566 if (ret != 1)
567 return (L_KERNEL *)ERROR_PTR("not a kernel file", procName, NULL);
568 if (version != KERNEL_VERSION_NUMBER)
569 return (L_KERNEL *)ERROR_PTR("invalid kernel version", procName, NULL);
570
571 if (fscanf(fp, " sy = %d, sx = %d, cy = %d, cx = %d\n",
572 &sy, &sx, &cy, &cx) != 4)
573 return (L_KERNEL *)ERROR_PTR("dimensions not read", procName, NULL);
574
575 if ((kel = kernelCreate(sy, sx)) == NULL)
576 return (L_KERNEL *)ERROR_PTR("kel not made", procName, NULL);
577 kernelSetOrigin(kel, cy, cx);
578
579 for (i = 0; i < sy; i++) {
580 for (j = 0; j < sx; j++)
581 ignore = fscanf(fp, "%15f", &kel->data[i][j]);
582 ignore = fscanf(fp, "\n");
583 }
584 ignore = fscanf(fp, "\n");
585
586 return kel;
587}
588
589
590/*!

Callers 1

kernelReadFunction · 0.85

Calls 3

fscanfFunction · 0.85
kernelCreateFunction · 0.85
kernelSetOriginFunction · 0.85

Tested by

no test coverage detected