Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python2
- #-*- coding: utf-8 -*-
- #
- # AGH w Krakowie, Kolokwium 2, Grupa B (10.01.2018)
- # Celem tej czesci kolokwium jest dzialajacy skrypt jezyka Python:
- # tux_view.py, ktory:
- # a) przetwarza dane wejsciowe pochodzace z pliku tekstowego tux.txt
- # b) sklada i wyswietla dane w postaci obrazka
- #
- # UWAGA1: Prosze uzupelnic swoje
- # imie i nazwisko:Tomasz Skwara
- # UWAGA2: Kod rozwiazania prosze wpisywac zaraz ponizej
- # polecenia do wykonania (nie na koncu tego pliku), lecz w miejscu
- # zostawionym na rozwiazanie (puste linie ponizej tresci zadania).
- #
- # Polecenie1: wczytaj pakiet OpenCV tak, aby wszystkie funkcje byly dostepne
- # poprzez nazwe cv2, w tym celu nalezy uzyc funkcji import
- import cv2
- # Polecenie2: wczytaj rozszerzenia dostarczane przez pakiet NumPy aby byly
- # dostepne przez nazwe "np". Uzyj sposobu: "import pakiet as nazwa"
- import numpy as np
- # Polecenie3: z pliku tux.txt wczytaj dane do zmiennej o nazwie "dane"
- # W tym celu uzyj funkcji genfromtxt dostarczanej przez pakiet numpy
- # Podpowiedz: np.genfromtxt('tux.txt', delimiter=' ')
- dane = np.genfromtxt('tux.txt', delimiter=' ')
- # Polecenie4: rozdziel dane znajdujace sie w wierszach na odpowiednio
- # x y R G B. Podpowiedz: G=dane[:,3]
- x=dane[:,0]
- y=dane[:,1]
- R=np.uint8(dane[:,2])
- G=np.uint8(dane[:,3])
- B=np.uint8(dane[:,4])
- # Polecenie5: sprawdz dlugosc rozdzielonych danych, przy pomocy metody len
- # wynik zapisz do zmiennej d
- d = len(x) -1
- # Polecenie6: napisz petle for, ktora zlozy dane do "struktury"
- # o nazwie tux wymaganej przez metode wyswietlajaca cv2.imshow
- # Podpowiedz1: inicjalizacja pustego obrazu o wymiarach X na Y, dane typu uint8
- # img = np.empty(shape=[Y,X,3],dtype='uint8')
- # Podpowiedz2: img[y,x,0] to kolor Blue, img[y,x,1] to Green, img[y,x,2] - Red.
- Y=int(max(y))+1
- X=int(max(x))+1
- img = np.empty(shape=[Y,X,3],dtype='uint8')
- # for i in range(0, d):
- # img[ int(y[i]), int(x[i]), :] = (B[i], G[i], R[i])
- for i in range(0, d):
- img[ int(y[i]), int(x[i]),0] = B[i]
- img[ int(y[i]), int(x[i]),1] = G[i]
- img[ int(y[i]), int(x[i]),2] = R[i]
- tux = img
- # Polecenie7: Finalnie wyswietl odtworzony obrazek uzywajac imshow z pakietu cv2
- cv2.imshow("Tux", tux)
- cv2.waitKey()
- cv2.destroyAllWindows()
- # z mozliwoscia zamkniecia obrazka dowolnym przyciskiem z klawiatury
- # Podpowiedz:
- #cv2.imshow("Tux", tux) # generuje okno z obrazkiem o tytule Tux
- #cv2.waitKey() # blokujaca funkcja, wymagana przez nastepna:
- #cv2.destroyAllWindows() # zamkniecie okna z obrazkiem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement