Advertisement
Skylighty

tomo

Oct 22nd, 2020
2,162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. # Tu umieść swój skrypt
  2.  
  3. #Załadowanie niezbędnych bibiotek
  4. import imageio
  5. import numpy as np
  6. from scipy import ndimage
  7. import matplotlib.pyplot as plt
  8.  
  9.  
  10. ######################################
  11. #         Sekcja konfiguracji        #
  12. ######################################
  13.  
  14. #Nazwa pliku z sinogramem do wczytania
  15. sFileName = "Sinogram1.png"
  16. #Nazwa pliku z przekrojem do zapisania
  17. sOutFileName = "Tomo1.png"
  18.  
  19. Img = imageio.imread(sFileName)
  20. (AngleSteps, ImgWidth) = Img.shape
  21.  
  22. RecImg = np.zeros((ImgWidth, ImgWidth))
  23. c = np.zeros((ImgWidth, ImgWidth))
  24.  
  25. #Tu wstaw swój kod
  26. for AngleId in range(0, AngleSteps):
  27.     print("{}/{}".format(AngleId, AngleSteps))
  28.     for i in range(0, 200):
  29.         c[i, :] = Img[AngleId, :]
  30.     RotatedImage = ndimage.rotate(c, -360.0 * AngleId / AngleSteps, reshape=False)
  31.     RecImg += RotatedImage
  32.     if AngleId in range(0, 20):
  33.         fig = plt.figure(figsize=(3, 5))
  34.         ax1, ax2 = fig.subplots(2, 1)
  35.         ax1.set_title('Skanowany obiekt')
  36.         ax1.imshow(RecImg, cmap='gray')
  37.         ax2.set_title('Odtwarzana funkcja gestosci')
  38.         ax2.plot(RecImg)
  39.         plt.show()
  40. n = sum(sum(RecImg))
  41. plt.imshow(RecImg/n, cmap='gray')
  42. plt.show()
  43.  
  44. #Zapis wyniku do pliku
  45. imageio.imwrite(sOutFileName, RecImg)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement