Advertisement
Guest User

readeeer

a guest
Jan 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. #!/usr/bin/python2
  2. #-*- coding: utf-8 -*-
  3. #
  4. # AGH w Krakowie, Kolokwium 2, Grupa B (10.01.2018)
  5. # Celem tej czesci kolokwium jest dzialajacy skrypt jezyka Python:
  6. # tux_view.py, ktory:
  7. # a) przetwarza dane wejsciowe pochodzace z pliku tekstowego tux.txt
  8. # b) sklada i wyswietla dane w postaci obrazka
  9. #
  10. # UWAGA1: Prosze uzupelnic swoje
  11. # imie i nazwisko:Tomasz Skwara
  12. # UWAGA2: Kod rozwiazania prosze wpisywac zaraz ponizej
  13. # polecenia do wykonania (nie na koncu tego pliku), lecz w miejscu
  14. # zostawionym na rozwiazanie (puste linie ponizej tresci zadania).
  15. #
  16. # Polecenie1: wczytaj pakiet OpenCV tak, aby wszystkie funkcje byly dostepne
  17. # poprzez nazwe cv2, w tym celu nalezy uzyc funkcji import
  18. import cv2
  19.  
  20. # Polecenie2: wczytaj rozszerzenia dostarczane przez pakiet NumPy aby byly
  21. # dostepne przez nazwe "np". Uzyj sposobu: "import pakiet as nazwa"
  22. import numpy as np
  23.  
  24. # Polecenie3: z pliku tux.txt wczytaj dane do zmiennej o nazwie "dane"
  25. # W tym celu uzyj funkcji genfromtxt dostarczanej przez pakiet numpy
  26. # Podpowiedz: np.genfromtxt('tux.txt', delimiter=' ')
  27.  
  28. dane = np.genfromtxt('tux.txt', delimiter=' ')
  29.  
  30.  
  31. # Polecenie4: rozdziel dane znajdujace sie w wierszach na odpowiednio
  32. # x y R G B. Podpowiedz: G=dane[:,3]
  33. x=dane[:,0]
  34. y=dane[:,1]
  35. R=np.uint8(dane[:,2])
  36. G=np.uint8(dane[:,3])
  37. B=np.uint8(dane[:,4])
  38.  
  39. # Polecenie5: sprawdz dlugosc rozdzielonych danych, przy pomocy metody len
  40. # wynik zapisz do zmiennej d
  41. d = len(x) -1
  42.  
  43. # Polecenie6: napisz petle for, ktora zlozy dane do "struktury"
  44. # o nazwie tux wymaganej przez metode wyswietlajaca cv2.imshow
  45. # Podpowiedz1: inicjalizacja pustego obrazu o wymiarach X na Y, dane typu uint8
  46. # img = np.empty(shape=[Y,X,3],dtype='uint8')
  47. # Podpowiedz2: img[y,x,0] to kolor Blue, img[y,x,1] to Green, img[y,x,2] - Red.
  48.  
  49. Y=int(max(y))+1
  50. X=int(max(x))+1
  51.  
  52. img = np.empty(shape=[Y,X,3],dtype='uint8')
  53.  
  54. # for i in range(0, d):
  55. # img[ int(y[i]), int(x[i]), :] = (B[i], G[i], R[i])
  56.  
  57.  
  58. for i in range(0, d):
  59. img[ int(y[i]), int(x[i]),0] = B[i]
  60. img[ int(y[i]), int(x[i]),1] = G[i]
  61. img[ int(y[i]), int(x[i]),2] = R[i]
  62.  
  63.  
  64.  
  65. tux = img
  66.  
  67. # Polecenie7: Finalnie wyswietl odtworzony obrazek uzywajac imshow z pakietu cv2
  68. cv2.imshow("Tux", tux)
  69. cv2.waitKey()
  70. cv2.destroyAllWindows()
  71.  
  72. # z mozliwoscia zamkniecia obrazka dowolnym przyciskiem z klawiatury
  73. # Podpowiedz:
  74. #cv2.imshow("Tux", tux) # generuje okno z obrazkiem o tytule Tux
  75. #cv2.waitKey() # blokujaca funkcja, wymagana przez nastepna:
  76. #cv2.destroyAllWindows() # zamkniecie okna z obrazkiem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement