background image

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][_][_]

- 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][_]

...

...

...

...

...

...

 

 
 

 

background image

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]; 

 

– obraz+2·wier·kol

– 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ę.