mask_fuzzer.cc 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "leptfuzz.h"
  2. PIX *
  3. MakeReplacementMask(PIX *pixs)
  4. {
  5. PIX *pix1, *pix2, *pix3, *pix4;
  6. pix1 = pixMaskOverColorPixels(pixs, 95, 3);
  7. pix2 = pixMorphSequence(pix1, "o15.15", 0);
  8. pixSeedfillBinary(pix2, pix2, pix1, 8);
  9. pix3 = pixMorphSequence(pix2, "c15.15 + d61.31", 0);
  10. pix4 = pixRemoveBorderConnComps(pix3, 8);
  11. pixXor(pix4, pix4, pix3);
  12. pixDestroy(&pix1);
  13. pixDestroy(&pix2);
  14. pixDestroy(&pix3);
  15. return pix4;
  16. }
  17. extern "C" int
  18. LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  19. {
  20. if(size<3) return 0;
  21. leptSetStdNullHandler();
  22. PIX *pixs, *pix1, *pix2;
  23. pixs = pixReadMemSpix(data, size);
  24. if(pixs==NULL) return 0;
  25. pix1 = MakeReplacementMask(pixs);
  26. pix2 = pixConvertTo8(pix1, FALSE);
  27. pixPaintSelfThroughMask(pix2, pix1, 0, 0, L_HORIZ, 30, 50, 5, 10);
  28. pixDestroy(&pixs);
  29. pixDestroy(&pix1);
  30. pixDestroy(&pix2);
  31. return 0;
  32. }