Blood flow rates can be calculated using diffuse speckle contrast analysis in spatial and time domains. In the spatial domain analysis a multi pixel image sensor can be used to detect a spatial distribution of speckles in a sample caused by diffusion of light from a coherent light source that is blurred due to the movement of scatterers within the sample (e.g. red blood cells moving within a tissue sample). Statistical analysis of the spatial distribution can be used to calculate blood flow. In the time domain analysis a slow counter can be used to obtain time series fluctuations in light intensity in a sample caused by diffusion of light in the sample that is smoofhened due to the movement of scatterers. Statistical analysis of the time series data can be used to calculate blood flow.