histoMetric.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import os
  4. import csv
  5. import math
  6. maxPos = 4000 # 8740
  7. genData = []
  8. def maxIndex(v):
  9. return max([n for n, x in enumerate(v) if x > 0])
  10. pos = 0
  11. first = True
  12. cs = []
  13. xs = []
  14. ys = []
  15. pts = [0,100,200,300,400,500,600,700,800,900,1000]
  16. yss = { k : [] for k in pts }
  17. with open("mimx.csv") as f:
  18. for row in csv.reader(f, delimiter=","):
  19. if first or len(row) < 9:
  20. first = False
  21. continue
  22. n = f"{row[2]}"
  23. while len(n) < 4:
  24. n = f"0{n}"
  25. fileNameImg = f"../Proband {row[0]}/SE00000{row[1]}/{row[0]}_{n}.dcm"
  26. fileName = f"../Proband {row[0]}/SE00000{row[1]}/{row[0]}_{n}.dcm_blured_histo_diff.npy"
  27. #print(f"load '{fileName}' -> {pos}", end="\r")
  28. pos += 1
  29. cs.append(int(row[8]))
  30. w = np.load(fileName, allow_pickle=False)
  31. for k in pts:
  32. yss[k].append(sum(w[k:k + 100]))
  33. ys.append(sum(w[:100]))
  34. xs.append(maxIndex(w))
  35. #for n, x in enumerate(w):
  36. # if x > 1000:
  37. # w[n] = 1000
  38. #yss[int(row[7])].append(np.log(1 + w))
  39. ##plt.plot(w)
  40. plt.scatter(xs,ys,cs)
  41. plt.savefig(f"graphics/width.pdf")
  42. plt.close()
  43. for k in pts:
  44. for n in [5,4,3,2,1]:
  45. plt.scatter([x for x, c in zip(xs, cs) if c == n], [x for x, c in zip(yss[k], cs) if c == n])
  46. plt.savefig(f"graphics/width{k}.pdf")
  47. plt.close()
  48. #for n in [3,4,5]:
  49. # for w in yss[n]:
  50. # plt.plot(w)
  51. # plt.savefig(f"graphics/width{n}.pdf")
  52. # plt.close()
  53. print()
  54. print("done")