PRZETWARZANIE OBRAZÓW :
Przetwarzanie tablic wielowymiarowych w języku C++
0.
© P.Ślusarczyk
Strona 1 z 2
1.
Środowisko programistyczne
a. Dev-C++:
http://www.bloodshed.net/devcpp.html
b. Microsoft Visual C++ Express:
http://www.microsoft.com/visualstudio/eng/
2.
Konfiguracja projektu w środowisku DevC++
a. Utworzenie pustego projektu
'Empty Project'
3.
Konfiguracja projektu w środowisku Visual C++ 2012 Express
a. Utworzenie projektu typu: '
Win32 Console Application'
i.
W okienku '
Win32 Application Wizard'
wybranie zakładki
'
Application Settings'
ii.
W sekcji '
Application type'
należy wybrać
'Console
Application'
iii.
W sekcji '
Additional options'
należy wybrać
'Empty project'
b. Dodawanie plików do projektu:
Project->Add New Item ...
-> C++ File (.cpp)
c. Kompilacja:
'Build/Build Solution (F7)'
d. Uruchamianie:
'Debug/Start Without Debugging (Crtl-F5)'
4.
Napisz program wykonujący następujące operacje na tablicy wielowymiarowej:
a.
Utworzenie statycznej tablicy trójwymiarowej o następujących wymiarach
˗ liczba wierszy – 5,
˗ liczba kolumn – 6,
˗ liczba kanałów – 3.
int obraz[
kanały][wiersze][kolumny];
b.
Wypełnienie tablicy liczbami według następującego algorytmu:
˗ kanał 0: od 0 do 29,
˗ kanał 1: od 100 do 129,
˗ kanał 2: od 1000 do 1029.
c.
Wyświetlenie tablicy w postaci 3 tablic dwuwymiarowych odpowiadających
poszczególnym kanałom.
d.
Odbicie tablicy względem osi pionowej
e.
Ponowne wyświetlenie tablicy
B - obraz[2][_][_]
G - obraz[1][_][_]
R - obraz[0][_][_]
obraz[0][_][_]
obraz[1][_][_]
obraz[2][_][_]
obraz[0][0][_]
obraz[0][1][_]
obraz[0][wiersze-1][_]
obraz[1][0][_]
obraz[1][1][_]
obraz[1][wiersze-1][_]
obraz[2][0][_]
obraz[2][1][_]
obraz[3][wiersze-1][_]
obraz[0][0][_]
obraz[0][1][_]
obraz[0][wiersze-1][_]
obraz[1][0][_]
obraz[1][1][_]
obraz[1][wiersze-1][_]
obraz[2][0][_]
obraz[2][1][_]
obraz[2][wiersze-1][_]
...
...
...
...
...
...
PRZETWARZANIE OBRAZÓW :
Przetwarzanie tablic wielowymiarowych w języku C++
0.
© P.Ślusarczyk
Strona 2 z 2
5.
Napisz program wykonujący te same działania co program z zadania 4, ale w oparciu
o wskaźniki i dynamiczny przydział pamięci.
int *obraz = new int[
kanały*wiersze*kolumny];
B – obraz+2·wier·kol
G – obraz+1·wier·kol
R - obraz
*obraz
*(obraz+1·wier·kol)
*(obraz+2·wier·kol)
*obraz
*(obraz+1
·
kol)
*(obraz+(wier-1)
·
kol))
*(obraz+1
·
wier
·
kol)
*(obraz+1
·
wier
·
kol+1
·
kol)
*(obraz+1·wier·kol +(wier-1)·kol)
*(obraz+2
·
wier
·
kol)
*(obraz+2
·
wier
·
kol+1
·
kol)
*(obraz+2·wier·kol+(wier-1)·kol)
*obraz
*(obraz+(wier-1)
·
kol))
*(obraz+1
·
wier
·
kol)
*(obraz+1·wier·kol +(wier-1)·kol)
*(obraz+2
·
wier
·
kol)
*(obraz+2·wier·kol+(wier-1)·kol)
...
...
...
...
...
...
6.
Przeanalizuj i porównaj wydajność napisanych programów i przeprowadź ich
optymalizację.