Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. from pylab import *
  2.  
  3. def ringsprojfn(shape, rcen, rs, drs, shell=False):
  4. ''' Draw the projection of rings.
  5.  
  6. shape - shape of image to return (row, col format)
  7. r0 - the center in (row, col) format
  8. rs - starting radii
  9. drs - thicknesses of radii
  10. '''
  11. n = len(rs)
  12.  
  13. x = np.arange(shape[0])
  14. y = np.arange(shape[1])
  15. # X is rows, Y is columns
  16. X,Y = np.meshgrid(x,y,indexing='ij')
  17. r = np.sqrt((X-rcen[0])**2 + (Y-rcen[1])**2)
  18.  
  19. img = np.zeros(shape)
  20.  
  21. if shell:
  22. for i in range(n):
  23. img += ((1-((r-rs[i])/(drs[i]*.5))**2) > 0)
  24. else:
  25. for i in range(n):
  26. img += np.sqrt(np.maximum(1-((r-rs[i])/(drs[i]*.5))**2,0))
  27.  
  28. return img
  29.  
  30. rs = [10, 100,200]
  31. drs = [5, 20, 40]
  32. shape = 1000,1000
  33. rcen = 500,500
  34. img1 = ringsprojfn(shape, rcen, rs, drs)
  35. img2 = ringsprojfn(shape, rcen, rs, drs,shell=True)
  36.  
  37. figure(3);clf();
  38. imshow(img1)
  39.  
  40. figure(4);clf();
  41. imshow(img2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement