1 / 10

CSE 803 Using images in C++

CSE 803 Using images in C++. Computing with images Applications & Methods 2D arrays in C++ Programming project 4. Memory organizations. Raster storage of 2D array 2D array using pointers to rows PGM image file format. 1D array via a pointer. P is base address of array in memory

Télécharger la présentation

CSE 803 Using images in C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 803 Using images in C++ Computing with images Applications & Methods 2D arrays in C++ Programming project 4

  2. Memory organizations • Raster storage of 2D array • 2D array using pointers to rows • PGM image file format

  3. 1D array via a pointer • P is base address of array in memory • Array has N cells • Cells 0, 1, …, N-1 • double* P; • P = new double[N]; • P[k] located at P + k * size of cell

  4. 2D array via pointers • int** P; • Need to acquire dynamic memory for row pointers and for rows of integers

  5. Point to array of row pointers typedef int* integerPointer; integerPointer P; P = new integerPointer [5]; // allocate 3 columns in each row for ( int k=0; k<5; k++ ) P[k] = new int [3]; // now have 5 rows of 3 integers each

  6. Referencing 5 rows of 3 ints // put i + j in P[i][j] for ( int i=0; i<5; i++) for ( int j=0; j<3; j++) (P[i])[j] = i+j; // don’t need () // P points to a 1D array of pointers to int // P[i] is the pointer offset +i from P // (P[i])[j] is the int offset +j from P[I ]

  7. “raster” storage of 2D array • One continguous block of memory for double A[3][4]; • 3 rows of 4 columns • 8 bytes for each cell • Row 0 first, then row 1, then row 2 • Easy formula locates any cell in same time

  8. Issues with 2D arrays • Images can be different sizes; R x C • Size unknown until image file opened • Image history usually needed • Program must keep collection of data items – R, C, comments, I[r][c] • Object class is a good solution

  9. PGM is simple image file form • See Fig. 2.12 of Shapiro and Stockman • P2 is “magic number” for gray image • # indicates comment line • Width, height, max gray value next • ASCII values for width x height pixels in row major order

  10. PGM image with ASCII info. • P2 means ASCII gray • Comments • W=16; H=8 • 192 is max intensity • Can be made with editor

More Related