In this tutorial we read the pair of images using imread
, compare them visually
and process using OpenPIV. Here the import is using directly the basic functions and methods
from openpiv import tools, process, validation, filters, scaling
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["figure.figsize"] = (11,8)
frame_a = tools.imread( '../test1/exp1_001_a.bmp' )
frame_b = tools.imread( '../test1/exp1_001_b.bmp' )
fig,ax = plt.subplots(1,2)
ax[0].imshow(frame_a,cmap=plt.cm.gray)
ax[1].imshow(frame_b,cmap=plt.cm.gray)
<matplotlib.image.AxesImage at 0x24d7cfd1ef0>
frame_a.shape, frame_a.dtype
((369, 511), dtype('uint8'))
winsize = 24 # pixels
searchsize = 64 # pixels, search in image B
overlap = 12 # pixels
dt = 1.0 # sec
u0, v0, sig2noise = process.extended_search_area_piv( frame_a, frame_b, \
window_size=winsize, overlap=overlap, dt=dt, \
search_area_size=searchsize, sig2noise_method='peak2peak' )
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-5-d687bcf2fd19> in <module> 7 u0, v0, sig2noise = process.extended_search_area_piv( frame_a, frame_b, \ 8 window_size=winsize, overlap=overlap, dt=dt, \ ----> 9 search_area_size=searchsize, sig2noise_method='peak2peak' ) ~\Anaconda3\envs\openpiv\lib\site-packages\openpiv\process.pyx in openpiv.process.extended_search_area_piv() ValueError: Buffer dtype mismatch, expected 'DTYPEi_t' but got 'unsigned char'
x, y = process.get_coordinates( image_size=frame_a.shape, window_size=winsize, overlap=overlap )
u1, v1, mask = validation.sig2noise_val( u0, v0, sig2noise, threshold = 1.3 )
u2, v2 = filters.replace_outliers( u1, v1, method='localmean', max_iter=10, kernel_size=2)
x, y, u3, v3 = scaling.uniform(x, y, u2, v2, scaling_factor = 1 )
tools.save(x, y, u3, v3, mask, 'exp1_001.txt' )
tools.display_vector_field('exp1_001.txt', scale=300, width=0.0025)
y