Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.