#Grupa 1
1Program zaliczenie odczyuje z dysku dane medyczne w formie macierzy trójwymiarowej o roziarze wyświetlonym na ekranie. Liczby oznaczaja kolejno i rozmiar w kierunku osi z , następnie y a na końcu x.
2Wybierz z macierzy 3d w kierunku osi z warstwy oddalone od siebie o 4 a następnie dodaj warstwę parami do siebie
1+4,4+8,8+12... (slicing lub pętla for)
3 Oblicz liczbę elementów nowo utworzonego macierzy o wartości większej niż 127 (pętla for lub kombinacja maskowania macierzy+komenda sum i nor zevo ()
skala = 4
temp_a=np.array(range(skala,struktura.shape[0],skala))
temp_b = temp_a - skala
wynik1 = struktura[temp_a,:,:] + struktura[temp_b,:,:]
wynik2 = np.sum(1*(wynik1 > 127))
wynik1.tofile('wynik_gr1.raw')
#Grupa 2
Te dane to jest macierz liczb, macierz dziwna bo 3wymiarowa(x,y,z). Program to wczytuje. Liczby na ekranie to rozmiary tej kostki. Ta kostka ma 240 wartw, dwa pozostałe rozmiary to też rozmiar, środkowa (308) kierunek y, ostatnia (304) kierunek x. Macierz jest wczytywana do zmiennej która jest nazwana - struktura. Macierz ta jest utwoprzona przez aray (?) z bibl. numpy. TO GRUBY ZROBIŁ.
na 3 (ocena) Na 3, na 4, na 5
Na 3 (ocene) z tej macierzy mamy wybrać PARY WARST te pary maja być dwie sąsiednie pary np.0,1 te pary maja byc oddalone od siebie o cztery warstwy i tych par ma byc tyle na ile pozwala wysokość tej macierzy (pierwsza liczba) np. .. nastepnie te pary musimy do siebie dodać. czyli dodajemy 0+1, 8+9, nie wszystkie do siebie tylko parami i jak takie coś przeprowadzimy to mamy 3
na 4 (ocena)
trzeba policzyć ile w tych sumach warst jest elementów macierzy większej niz 127
na 5(ocena)
trzeba zapisać wynik na dysku
KOMENDY POTRZEBNE !
NA OCENE 3 żeby zrobić wybieranie warst
- przy pomocy petli for, i "slajsing"
- tylko przy pomocy "slajsingu"
NA OCENE 4
potrzeba jeszcze 2 metody
- przy pomocy pętli for
- albo przy pomocy operacji maskowanie macierzy
- komendy z numpy która brzmi non zero
NA OCENE 5
- komenda "tofile"
skala = 4
temp_a=np.array(range(1,struktura.shape[0],skala))
temp_b = temp_a - 1
wynik1 = struktura[temp_a,:,:] + struktura[temp_b,:,:]
wynik2 = np.sum(1*(wynik1 > 127))
wynik1.tofile('wynik_gr2.raw')
#Grupa 3
To co się wczytało, to co dostaliśmy to jest wczytanie trójwymiarowej macierzy. Ta macierz ma wymiary które się wyświtliły 240, 308, 304. pierwsza liczba to kierunek osi z, druga to os y, trzecia to oś x. Z tej macierzy wybrać określone warstwy. On by chciał żebśmy te wartsty wybierali : para warstw oddalonych od siebie o 1, z jedną warstwą przerwy (pierwsza i tzrecia) Takich par mamy wybrać z kolei co 5 warstw, czyli pierwsza para 0 i 1, następna o 5 czyli 0+5= 5, 2+5= 7, 10 i 12. Warstw musi być pięciokrotnie mniej. Para co 5. Tę pare warstw do siebie dodajemy.Jak to zrobimy jest 3. Wybrać warstwy, dodać je parami. Jedna linijka kodu PONOĆ. Można zrobić to dwoma metodami. mozna pętlą for lub slicingiem. 4. ta macierz zawiera tylko dwie wartości albo 0 albo 127, jak dodamy parę wartstw to mozemy mieć 3 rózne wartości. W tych sumach par wyszukać ile jest wartości większych od 127. ILE ich jest. znów for lub kombinacja maskowania macierzy oraz dwóch komend sum lub nonzero. Na 5 wynik musi zapisać, tofile! |
skala = 5
temp_a=np.array(range(2,struktura.shape[0],skala))
temp_b = temp_a - 2
wynik1 = struktura[temp_a,:,:] + struktura[temp_b,:,:]
wynik2 = np.sum(1*(wynik1 > 127))
wynik1.tofile('wynik_gr3.raw')
Twójwymiarowa macierz - składa się z liczb rozpiętych na kostce.
Trzy liczby - rozmiar macierzy w poszczególnych kierunkach (z=240, y=308, x=304.
Macierz jest tworzona przy pomocy komendy array z numpy.
MA BYĆ:
Mamy dokonać taką operację, w której w kierunku osi X i potem w kier. osi Y zostana do siebie dodane po trzy warstwy tej oryginalnej macierzy. Najpierw w x -> 0 warstwa+ 1 + 2, 3+4+5, 6+7+8 etc. i to samo w y (po trzy).
Powstanie macierz trójwymiarowa, ale te liczby, któe sie wyswietliły bedą trzykrotnie mniejsze czyli z trzech warstw powstanie nowa warstwa. Z ma zostać bez zmian.
Po tym mamy znaleźć w tej nowej, mniejszej macierzy wszystkie wartości które wsą wieksze od 512 i policzymy ile ich jest - policzymy ile w tej nowopowstanej macierzy pojawi się wartości większych niż 512.
Tę nową macierz mniejszą zapisujemy na dysku.
Oceny: za dodawanie warstw: 3
Zliczenie wartości wiekszych od 512: 4
wszystko dziala i wynik na dysku: 5
Niezbędne komendy: sumowanie: pętla for lub slicing(wybieranie fragmentó macierzy)
Operacja sumowania: pętla for(niekoniecznie jedna) lub maskowanie macierzy i komendy non0 i sum (z numpy). Numpy jest wczytany jakby co.
Aby zapisać macierz: tofile (z numpy)
skala = 3
temp_a=np.array(range(2,struktura.shape[1],skala))
temp_b=temp_a - 1
temp_c=temp_a - 2
temp_d=np.array(range(2,struktura.shape[2],skala))
temp_e=temp_d - 1
temp_f=temp_d - 2
wynik1a = struktura[:,temp_a,:] + struktura[:,temp_b,:] + struktura[:,temp_c,:]
wynik1b = wynik1a[:,:,temp_d] + wynik1a[:,:,temp_e] + wynik1a[:,:,temp_f]
wynik2 = np.sum(1*(wynik1b > 512))
wynik1.tofile('wynik_gr4.raw')
#Gruoa 5
trójwymiarowa macierz struktura z y x (240,308,304) w tej macierzy wybrać co 4 warstwę w kierunku osi z czyli 0,4,8,12,16 itd. aż do 60, później zsumować ze sobą dwie najbliżej z sobą położone czyli 0i4 4i8 8i12 czyli 59 warstw, pozostałe dwa wymiary mają być bez zmian - czyli powstanie macierz mniejsza w kierunku osi z (zadanie na 3)
- zsumowac dwie najblizej siebie polozone(0 i 4, 4 i 8, 8 i 16)bedzie 59 warstw
-pozostale wymiary bez zmian
powstaje macierz mniejsza
na 4:
-macierz w oryginale ma 2 wartosci, 0 i 127
- suma ich wartosci daje 254,
- skasujemy, wyzerujemy wszystkie wartosci <127, wieksze niz 127 niezmienione
na 5:
- macierz wynikową zapisac na dysku
komendy:
na 3: for, slicing,
na 4: for, wiecej niz jedna, lub maskowanie macierzy, non zero
na 5: tofile
na 4:
-macierz w oryginale ma 2 wartosci, 0 i 127
- suma ich wartosci daje 254,
- skasujemy, wyzerujemy wszystkie wartosci <127, wieksze niz 127 niezmienione
Ma być 60 liczb oddalonych co 4. czyli 0, 4, 8 itd. a nie że do 60 tylko.
skala = 4
temp_a=np.array(range(skala,struktura.shape[0],skala))
temp_b = temp_a - skala
wynik1 = struktura[temp_a,:,:] + struktura[temp_b,:,:]
wynik2 = 127 * np.array((wynik1 > 127))
wynik1.tofile('wynik_gr5.raw')