Py.Cafe

alexlib/

openpiv

interactive OpenPIV on py.cafe

DocsPricing
  • F_00001.bmp
  • F_00002.bmp
  • app.py
  • requirements.txt
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# workaround for ipycanvas for using a singleton widget
# import traitlets
# import ipycanvas
# ipycanvas.canvas._CanvasBase._canvas_manager.default_value = traitlets.Undefined
# ipycanvas.canvas._CanvasBase._canvas_manager.make_dynamic_default = ipycanvas.canvas._CanvasManager

# import stackview
import numpy as np
from openpiv.piv import simple_piv


from imageio.v3 import imread
image1 = imread('F_00001.bmp')
image2 = imread('F_00002.bmp')


x,y,u,v,s2n = simple_piv(image1, image2, plot=False)

from openpiv.tools import display_vector_field_from_arrays
import matplotlib.pyplot as plt
# assign to page for solara to know what to render

import solara

# 
@solara.component
def Page():

    fig, ax = plt.subplots()
    ax.imshow(image1, cmap='gray');
    ax.quiver(x,y,u,-v,u**2+v**2, scale=150, cmap='jet')
    plt.show()
    
    # # stackview.slice(np.stack([image1,image2],axis=0), continuous_update=True)
    # plt.figure()
    # display_vector_field_from_arrays(x,y,u,v,flags=s2n<1.5, mask=None, on_img=True, image_name='F_00001.bmp',window_size=32, scaling_factor=1)