main.py 785 B

123456789101112131415161718192021222324252627282930313233343536
  1. import sys
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. from skimage.measure import label
  5. if len(sys.argv) < 2:
  6. print("No path provided")
  7. num = np.load(sys.argv[1])
  8. lb = label(num)
  9. fs = {}
  10. for l in np.unique(lb)[1:]:
  11. x, y = np.where(lb == l)
  12. x = x - x.min()
  13. y = y - y.min()
  14. k = (str(x), str(y))
  15. if k not in fs.keys():
  16. fs[k] = 1
  17. else:
  18. fs[k] += 1
  19. for i, (fi, coun) in enumerate(fs.items()):
  20. plt.subplot(1, 5, i + 1)
  21. fi = (
  22. np.fromstring(fi[0][1:-1], dtype=int, sep=" "),
  23. np.fromstring(fi[1][1:-1], dtype=int, sep=" "),
  24. )
  25. fig = np.zeros((max(fi[0]) + 1, max(fi[1]) + 1))
  26. fig[fi[0], fi[1]] = 1
  27. plt.title(f"{coun}")
  28. plt.imshow(fig)
  29. plt.suptitle(f"Всего: {len(fs.items())}")
  30. plt.show()