magni.imaging.measurements._matrices module¶
Module providing public functions for the magni.imaging.measurements subpackage.
Routine listings¶
- construct_measurement_matrix(coords, h, w)
- Function for constructing a measurement matrix.
-
magni.imaging.measurements._matrices.
construct_measurement_matrix
(coords, h, w)[source]¶ Construct a measurement matrix extracting the specified measurements.
Parameters: - coords (ndarray) – The k floating point coordinates arranged into a 2D array where each row is a coordinate pair (x, y), such that coords has size k x 2.
- h (int) – The height of the image measured in pixels.
- w (int) – The width of the image measured in pixels.
Returns: Phi (magni.utils.matrices.Matrix) – The constructed measurement matrix.
See also
magni.utils.matrices.Matrix()
- The matrix emulator class.
Notes
The function constructs two functions: one for extracting pixels at the coordinates specified and one for the transposed operation. These functions are then wrapped by a matrix emulator which is returned.
Examples
Create a dummy 5 by 5 pixel image and an example sampling pattern:
>>> import numpy as np, magni >>> img = np.arange(25, dtype=np.float).reshape(5, 5) >>> vec = magni.imaging.mat2vec(img) >>> coords = magni.imaging.measurements.uniform_line_sample_image( ... 5, 5, 16., 17)
Sample the image in the ordinary way:
>>> unique = magni.imaging.measurements.unique_pixels(coords) >>> samples_normal = img[unique[:, 1], unique[:, 0]] >>> samples_normal = samples_normal.reshape((len(unique), 1))
Sample the image using the present function:
>>> from magni.imaging.measurements import construct_measurement_matrix >>> matrix = construct_measurement_matrix(coords, *img.shape) >>> samples_matrix = matrix.dot(vec)
Check that the two ways produce the same result:
>>> np.allclose(samples_matrix, samples_normal) True