# 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)