k-Wave Toolbox Previous   Next

Loading External Image Maps Example

Overview

This example demonstrates how to use an external image as the initial pressure distribution in the simulation and detection of photoacoustic waves within a two-dimensional homogeneous propagation medium. It builds on the Homogeneous Propagation Medium Example.

 Back to Top

Loading the image map

The initial pressure distribution p0 used by kspaceFirstOrder2D is simply a two-dimensional matrix filled with arbitrary numeric values. Consequently, any data may be used to define this distribution. Here an external image map is loaded using loadImage. This function converts an external image into a matrix, sums the colour channels (for colour images), and scales the pixel values from 0 to 1.

% load the initial pressure distribution from an image
p0_magnitude = 5;
p0 = p0_magnitude*loadImage('EXAMPLE_source.bmp');

The medium discretisation is again performed by calling makeGrid with the required grid dimensions, after which resize is used to scale the loaded image map to the required dimensions.

% assign the grid size and create the computational grid
Nx = 256;           % number of pixels in the x (column) direction
Nz = 256;           % number of pixels in the z (row) direction
x = 10e-3;          % grid size [m]
z = 10e-3;          % grid size [m]
dx = x/Nx;          % pixel width [m]
dz = z/Nz;          % pixel height [m]
kgrid = makeGrid(Nx, dx, Nz, dz);

% resize the input image to the desired number of pixels
p0 = resize(p0, Nx, Nz);

The simulation is invoked in the same way as in the previous examples. A plot of the initial pressure distribution and utilised Cartesian sensor mask (using nearest neighbour interpolation) and a visualisation of the recorded pressure field are shown below.

 Back to Top


© 2009 Bradley Treeby and Ben Cox.