pix4_fuzzer.cc 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #include "leptfuzz.h"
  2. extern "C" int
  3. LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  4. {
  5. leptSetStdNullHandler();
  6. PIX *pixs;
  7. BOX *box;
  8. pixs = pixReadMemSpix(data, size);
  9. if(pixs==NULL) return 0;
  10. PIX *pix1, *pix2, *pix3, *pix4, *pix5, *pix6;
  11. NUMA *na1, *na2, *na3, *na4, *na5, *na6;
  12. NUMAA *naa1;
  13. pix1 = pixConvertTo8(pixs, FALSE);
  14. box = boxCreate(120, 30, 200, 200);
  15. na1 = pixGetGrayHistogramInRect(pix1, box, 1);
  16. numaDestroy(&na1);
  17. boxDestroy(&box);
  18. pixDestroy(&pix1);
  19. naa1 = pixGetGrayHistogramTiled(pixs, 1, 1, 1);
  20. numaaDestroy(&naa1);
  21. pix1 = pixConvertTo8(pixs, FALSE);
  22. na1 = pixGetCmapHistogramMasked(pix1, NULL, 1, 1, 1);
  23. numaDestroy(&na1);
  24. pixDestroy(&pix1);
  25. pix1 = pixConvertTo8(pixs, FALSE);
  26. box = boxCreate(120, 30, 200, 200);
  27. na1 = pixGetCmapHistogramInRect(pix1, box, 1);
  28. numaDestroy(&na1);
  29. boxDestroy(&box);
  30. pixDestroy(&pix1);
  31. l_int32 ncolors;
  32. pixCountRGBColors(pixs, 1, &ncolors);
  33. l_uint32 pval;
  34. pix1 = pixConvertTo8(pixs, FALSE);
  35. pixGetPixelAverage(pix1, NULL, 10, 10, 1, &pval);
  36. pixDestroy(&pix1);
  37. pix1 = pixConvertTo8(pixs, FALSE);
  38. l_uint32 pval2;
  39. pixGetPixelStats(pix1, 1, L_STANDARD_DEVIATION, &pval2);
  40. pixDestroy(&pix1);
  41. pix1 = pixConvertTo8(pixs, FALSE);
  42. if(pix1!=NULL){
  43. pix2 = pixConvert8To32(pix1);
  44. pixGetAverageTiledRGB(pix2, 2, 2, L_MEAN_ABSVAL, &pix3, &pix4, &pix5);
  45. pixDestroy(&pix1);
  46. pixDestroy(&pix2);
  47. pixDestroy(&pix3);
  48. pixDestroy(&pix4);
  49. pixDestroy(&pix5);
  50. }
  51. pixRowStats(pixs, NULL, &na1, &na2, &na3, &na4, &na5, &na6);
  52. numaDestroy(&na1);
  53. numaDestroy(&na2);
  54. numaDestroy(&na3);
  55. numaDestroy(&na4);
  56. numaDestroy(&na5);
  57. numaDestroy(&na6);
  58. pixColumnStats(pixs, NULL, &na1, &na2, &na3, &na4, &na5, &na6);
  59. numaDestroy(&na1);
  60. numaDestroy(&na2);
  61. numaDestroy(&na3);
  62. numaDestroy(&na4);
  63. numaDestroy(&na5);
  64. numaDestroy(&na6);
  65. static const l_int32 nbins = 10;
  66. l_int32 minval, maxval;
  67. l_uint32 *gau32;
  68. pix1 = pixScaleBySampling(pixs, 0.2, 0.2);
  69. pixGetBinnedComponentRange(pix1, nbins, 2, L_SELECT_GREEN,
  70. &minval, &maxval, &gau32, 0);
  71. pixDestroy(&pix1);
  72. lept_free(gau32);
  73. PIX *pixd = pixSeedspread(pixs, 4);
  74. PIX *pixc = pixConvertTo32(pixd);
  75. PIX *pixr = pixRankBinByStrip(pixc, L_SCAN_HORIZONTAL, 1,
  76. 10, L_SELECT_MAX);
  77. pixDestroy(&pixd);
  78. pixDestroy(&pixc);
  79. pixDestroy(&pixr);
  80. PIXA *pixa = pixaReadMem(data, size);
  81. pix1 = pixaGetAlignedStats(pixa, L_MEAN_ABSVAL, 2, 2);
  82. pixaDestroy(&pixa);
  83. pixDestroy(&pix1);
  84. l_int32 thresh, fgval, bgval;
  85. pix1 = pixConvertTo8(pixs, 0);
  86. pixSplitDistributionFgBg(pix1, 1.5, 1, &thresh, &fgval, &bgval, &pix2);
  87. pixDestroy(&pix1);
  88. pixDestroy(&pix2);
  89. pixDestroy(&pixs);
  90. return 0;
  91. }