Python scripts demonstrating video-based fluid velocity measurements at the output of "white smokers" (hydrothermal vents).
This set of scripts implements a basic particle tracker for the video-based estimation of white smoker flow velocity. Similarly to Particle Image Velocimetry (PIV), it relies on the apparent displacement of the tiny particles carried away by the flow.
- Scientific Python distribution including numpy, scipy, matplotlib, scikit-image. E.g. Anaconda, Canopy.
Below is a sample frame from a video record of a white smoker. First, particles moving in the tube are isolated thanks to a background/foreground detection algorithm. This work relies on the "Running Gaussian average", implemented in whitesmoker_preproc.py. Below is the same frame as before, now showing particles only. Then, the displacement of each particle is estimated between two consecutive frames using a classical cross-correlation approach, implemented in whitesmoker_track.py. A quality control process removes the spurious estimates, shown in red in the image below.
The figure below show the displacement magnitude, in pixel, measured over 1266 frames (about 50 s of video). Each dot corresponds to an estimated vector. This proxy to a "displacement field" is consistent with what can be expected:
- the displacements are larger at the center of the tube than near its boundary;
- the displacements are also larger in the upper area than in the lower area. Indeed, the former is closer to the camera. This is a simple demonstrator. For actual measurements, images must be first rectified in order to enable the conversion from estimated displacements to velocity.