{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# %load test_windef.py\n", "\"\"\"\n", "Created on Fri Oct 4 14:33:21 2019\n", "\n", "@author: Theo\n", "\"\"\"\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "import numpy as np\n", "import openpiv.windef as windef\n", "from test_process import create_pair, shift_u, shift_v, threshold\n", "from openpiv.pyprocess import get_coordinates, extended_search_area_piv, get_field_shape\n", "from openpiv import validation, filters\n", "import scipy.ndimage as scn\n", "# from openpiv.windef import frame_interpolation\n", "\n", "from scipy.interpolate import RectBivariateSpline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "frame_a, frame_b = create_pair(image_size=256)\n", "\n", "# this test are created only to test the displacement evaluation of the\n", "# function the validation methods are not tested here ant therefore\n", "# are disabled." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# circular cross correlation\n", "def test_first_pass_circ():\n", " \"\"\" test of the first pass \"\"\"\n", " x, y, u, v, s2n = windef.first_pass(\n", " frame_a,\n", " frame_b,\n", " window_size=64,\n", " overlap=32,\n", " iterations=1,\n", " correlation_method=\"circular\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=True,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " )\n", " # print(\"\\n\", x, y, u, v, s2n)\n", " plt.quiver(x,y,u,v)\n", " \n", " assert np.mean(np.abs(u - shift_u)) < threshold\n", " assert np.mean(np.abs(v - shift_v)) < threshold" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABEOElEQVR4nO3dd3xT9foH8M+3g7ZAWS1QRtlDZimUUZqEAg4cjCvDq8hVARGFK4p4FQe48IoIchWliqKIF/C6GaKIDPUqahkyZRdkldIWSneT8/n90TS3oUmbNiknye95v155Neckzfk855w8OSNDkYQQQgj/EqB3ACGEEJ4nzV0IIfyQNHchhPBD0tyFEMIPSXMXQgg/FKR3AACIjIxkq1at9I7hNpJQSukdw20l76Dyl1r8oQ7Av2qxWCwIDAzUO4bP2759+wWSDR3d5hXNvW7duoiIiEBiYiIGDRqEXr16ISjIK6JVyvr16zF79mz069cPRqMRRqMRUVFReseqNJJ47LHHsG3bNphMJhiNRvTv3x/h4eF6R6u0S5cuYdy4cahZs6ZtmXTt2hUBAb6303rgwAFMmTIFnTp1stXSrFkzvWNVyapVq/Diiy8iISEBJpMJJpPJZ2vJysrCvffei/r162Pw4MEYOHAgIiMjr8q0lVInnN5IUvdLr169OHfuXAIgAIaHh/OWW27hggULuGvXLlosFvqKFStWUCllq6V9+/YcP34833vvPR49epSapukd0SUWi4Xjxo2z1REQEMCePXty2rRp/PTTT5mamqp3RJedP3+e11xzja2WunXr8qabbuI///lP/vjjj8zPz9c7ost+/fVXhoeH22pp3bo1//a3v3HJkiU8ePCgz6xfJLl48WJbHQDYpk0b3nXXXXz33Xd5+PBhn6rl7NmzbN26NQFQKcXY2FjOmDGD69evZ3Z2drVNF0AynfRV3Rs7rc1d0zQ+/PDDdgu75BIREcFRo0bxzTff5B9//OH1Cz0pKclhHQDYtGlT3nbbbVy0aBH37dund9RyFRUVccSIEU5r6dixIydOnMhly5bx7Nmzesct159//smWLVs6rCM0NJQmk4lPPvkk169fz9zcXL3jlmvLli0MDQ11WEujRo04cuRILly4kNu3b/f6DaMXX3zR6frVpEkTjhkzhosWLeLBgwf1jlqhgwcPMjIyskwdwcHBNBqNfOaZZ/jDDz+wsLDQY9P0ieZOFm8t3nHHHU4XNgA2aNCAX331lcdmTnUpvSfi6BIbG8udO3fqHbNCeXl5HDx4cLm1PPDAA8zKytI7aoUOHz7MqKgop3WEhoZy3rx5LCoq0jtqhdauXcugoCCntURERHDFihVevyGkaRofffTRctevG264gSkpKXpHdckvv/zCmjVrllvPsGHDPLY17zPNnSQLCgp43XXXOZwpvXr14vnz5z0yU66GmTNnOqyjdevWPlXH5cuX2bdvX4e13H333TSbzXpHdNnu3btZv359h7W88847eserlJUrV9odAiy5hISE8Ndff9U7nss0TeO9997rcJnExcX5xIZDaV999RUDAwMd1rN48WKPvuC61dwBRAPYDGA/gH0AplnHzwPwB4DdAD4HUM86vhWAPAC7rJekiqZRurmTZFZWFuPi4hzOnJEjR/LkyZMemznVSdM03n///U63rJKSknymMaanp7Nbt24Oa4mJieGWLVv0juiyX375hbVr13ZYy2233cYTJ07oHdFlb731ltO9kFmzZjEnJ0fviC4xm80cM2aM08Mzy5cv9/q9kNLee+89h7W0aNGCX3zxhcem425zbwKgp/V6OIBDADoDuB5AkHX8XABz+b/mvreix2U5zZ0kU1NT2a5dO9tMCQ4Otl2vVasW586dy4KCAo/NpOpy5aGmFi1alGmMW7du1TumS86ePcu2bdvalkd0dLRdLaNHj/aZ3edNmzYxJCSEABgZGWm7DoBhYWF85plnfKYxvvzyy7bsVx52at68OVeuXOkTjbGgoIBDhgyxZS9Z10ou8fHx/O233/SO6bLS5xMCAgLsahk6dCiPHTvm9jTcau5l/gH4EsB1V4z7C4B/04PNnSSPHTtmW1l///33Mq/snTp14qZNm9yeQdWtsLCQQ4cOJQD+9NNPXLVqVZnGOGbMGJ9ojMePH2ezZs3YtGlT5uTkcPbs2XYn93xpi3H16tUMCgrimDFjeOzYMY4cOdJumURHR3PVqlU+0RifeOIJAuC8efO4efNmdu/e3a4Wg8HA7du36x2zQjk5OUxISCAAnj59mu+++y4bNWpkq0MpxQkTJvjEu7U0TePUqVMJgH//+9/5xhtvsG7dunYbEXPmzHHr3Voea+7Wxn0SQJ0rxq8BcGep++QA2AlgKwCjk8eaBCAZQHKLFi2c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d+7Mb7/9Vu+ILnvllVecbvXedtttPHHihN4RXVJQUMCbb77ZYR01a9bk888/z9zcXI9MC75yWKa03bt3s379+gTA6667ju3bt7ebSUOGDOH+/fs9MoOq27Jly2y5H3zwQVtdJY1x6tSpTE9P1ztmhSwWC++8807bSjpp0iS73emIiAguXrzY68+JkOTly5fZp08fAmBiYiJHjBhht35dc8013LBhg94xXZKcnMzw8HAC4K233srWrVuXOdx07NgxvWO6ZNasWbbc999/v90J19DQUM6aNcsn3pCQm5vLgQMHEig+cT9s2LAyhzNXrVrl9kaqTzZ3kty2bRtr1arFuXPnsqCggK+88optJS5pjNOmTWNeXp5bM+hq+Ne//kUATElJYVpaGu+//34GBATYNcZ3331X75gVKiws5PDhwxkdHU2S3LFjB41Go92KGxMTw23btumctGJpaWns1KkTp0yZQpJcv359mY2IW2+9lWfPntU5acW2bNnC0NBQLlu2jHl5eZwzZw5r1qxpqyMkJIRPPfWU17/waprGadOmEQCzs7N57Ngxjho1ym6ZNG/enJ9++qneUSuUlZXFvn37snPnziTJDRs2sEuXLna1GAwG7tu3r8rT8NnmTpKbNm3ismXLbMPnzp3jhAkTbFuM/fr184m3sJHkM888Y3eSa9euXTSZTLYF/dRTT+mYznV5eXl86KGHbMOapnHVqlWMjo621bJ161YdE7ruzz//tHtRzc/P50svvcRatWoRABs1asTMzEz9AlbCmjVruH79etvwn3/+yTvuuMO2TIYOHapjOtdZLBbed999dlu1W7ZssXuH0KJFi3RM6LqMjAxOnjzZNlxUVMQ333yTERERtg3U/7fNnaTD5r19+3YajUb+8ssvlZ4hetE0rcxumKZp/Oijj9i/f3+f2N0s4Wh3Micnh7Nnz+bdd9+tQyLPOnXqFG+//XYuXbpU7yiV4mi5/PDDD+zXrx8PHz6sQ6KqcfScN5vNfOuttzhw4EAWFRXpkKpqHO0tZWRk8OGHH+Yjjzzi1mOX19xV8e36iouLY3JycqX/j6RPnEX//0aWi6hO/rR+uVuLUmo7yThHt3nVWyEry18WsL+R5SKqkz+tX9VZS5Wbu1IqWim1WSm1Xym1Tyk1zTr+GaXUaaXULuvlJs/FFUII4Qp3vjjMDOARkjusv6O6XSn1rfW2V0m+4n48IYQQVVHl5k7yLICz1uuXlVIHAJT9uJwQQoirziPH3JVSrQDEAvjFOmqqUmq3UmqpUso3vi9ACCH8iNvNXSlVG8CnAB4imQVgMYC2AHqgeMt+vpP/m6SUSlZKJaelpbkbQwghRCluNXelVDCKG/u/SX4GACRTSVpIagCWAOjj6H9Jvk0yjmRcw4YN3YkhhBDiCu68W0YBeBfAAZILSo1vUupufwGwt+rxhBBCVEWVP8SklDIA+AHAHgAlP075BIDbUXxIhgBSANxnPfla3mOlAThxxehIAN78I4uSr+q8ORvg3fm8ORsg+dxRlWwtSTo89OEVn1B1RCmV7OyTV95A8lWdN2cDvDufN2cDJJ87PJ3Npz+hKoQQwjFp7kII4Ye8ubm/rXeACki+qvPmbIB35/PmbIDkc4dHs3ntMXchhBBV581b7kIIIapImrsQQvghr2ju3v71wUqpFKXUHmuGZOu4Bkqpb5VSh61/dfkOHaVUx1LzZ5dSKksp9ZCe8876nULnlVJ7S41zOL9UsdeUUkes30fUU4ds85RSf1in/7lSqp51fCulVF6peZhUndnKyed0WSqlZlrn3UGl1A065fuoVLYUpdQu6/irOv/K6SO6r3vlZKu+dc/ZTzRdzQuAJgB6Wq+HAzgEoDOAZwDM8IJ8KQAirxj3MoDHrdcfBzDXC3IGAjgHoKWe8w6ACUBPAHsrml8AbgKwHoAC0A/ALzpkux5AkPX63FLZWpW+n47zzuGytD5HfgcQAqA1gKMAAq92vitunw9glh7zr5w+ovu6V062alv3vGLLneRZkjus1y8D8IWvDx4OYJn1+jIAI/SLYjMYwFGSV37a96oi+T2AjCtGO5tfwwF8wGLbANRT9l9hUe3ZSG4gabYObgPQvLqmXxEn886Z4QBWkSwgeRzAETj5LidPKS+fUkoBGANgZXVmcKacPqL7uucsW3Wue17R3EtT3vn1wQSwQSm1XSk1yTquMf/3tQrnADTWJ5qdv8L+ieUN866Es/nVDMCfpe53Cvq+sI9H8dZcidZKqZ1Kqa1KKaNeoeB4WXrbvDMCSCV5uNQ4XebfFX3Eq9Y9Bz2uhEfXPa9q7qqKXx98FRhI9gRwI4ApSilT6RtZvB+l63tKlVI1AAwD8LF1lLfMuzK8YX45opR6EsW/MPZv66izAFqQjAUwHcAKpVQdHaJ57bK8wu2w37jQZf456CM2eq97zrJVx7rnNc1dufH1wdWN5Gnr3/MAPrfmSC3ZhbP+Pa9HtlJuBLCDZCrgPfOuFGfz6zSA6FL3a24dd1Uppe4GcAuAsdYGAOvhjnTr9e0oPqbd4WpnK2dZesW8AwClVBCAWwF8VDJOj/nnqI/AS9Y9J9mqbd3ziuZuPVbnlV8frJSqpYp/IxZKqVooPgGyF8BqAHdZ73YXgC+vdrYr2G01ecO8u4Kz+bUawN+s71zoB+ASK/gWUU9TSg0B8A8Aw0jmlhrfUCkVaL3eBkB7AMeuZjbrtJ0ty9UA/qqUClFKtbbm+/Vq57O6FsAfJE+VjLja889ZH4EXrHvl9LjqW/eq6+xwZS4ADCjeVdoNYJf1chOA5Sj+SuHdKF4QTXTI1gbF70j4HcA+AE9ax0cA+A7AYQAbATTQcf7VApAOoG6pcbrNOxS/yJwFUITi45gTnM0vFL9T4Q0Ub5nsARCnQ7YjKD72WrLuJVnvO9K6zHcB2AFgqE7zzumyBPCkdd4dBHCjHvms498HMPmK+17V+VdOH9F93SsnW7Wte/L1A0II4Ye84rCMEEIIz5LmLoQQfkiauxBC+CFp7kII4YekuQshhB+S5i6EEH5ImrsQQvih/wPn6kRe62I/CAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "test_first_pass_circ()" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "def multipass_img_deform(\n", " frame_a,\n", " frame_b,\n", " window_size,\n", " overlap,\n", " iterations,\n", " current_iteration,\n", " x_old,\n", " y_old,\n", " u_old,\n", " v_old,\n", " correlation_method=\"circular\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=False,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " MinMaxU=(-100, 50),\n", " MinMaxV=(-50, 50),\n", " std_threshold=5,\n", " median_threshold=2,\n", " median_size=1,\n", " filter_method=\"localmean\",\n", " max_filter_iteration=10,\n", " filter_kernel_size=2,\n", " interpolation_order=3,\n", "):\n", " \"\"\"\n", " Multi pass of the PIV evaluation.\n", "\n", " This function does the PIV evaluation of the second and other passes.\n", " It returns the coordinates of the interrogation window centres,\n", " the displacement u, v for each interrogation window as well as\n", " the mask which indicates\n", " wether the displacement vector was interpolated or not.\n", "\n", "\n", " Parameters\n", " ----------\n", " frame_a : 2d np.ndarray\n", " the first image\n", "\n", " frame_b : 2d np.ndarray\n", " the second image\n", "\n", " window_size : tuple of ints\n", " the size of the interrogation window\n", "\n", " overlap : tuple of ints\n", " the overlap of the interrogation window, e.g. window_size/2\n", "\n", " x_old : 2d np.ndarray\n", " the x coordinates of the vector field of the previous pass\n", "\n", " y_old : 2d np.ndarray\n", " the y coordinates of the vector field of the previous pass\n", "\n", " u_old : 2d np.ndarray\n", " the u displacement of the vector field of the previous pass\n", "\n", " v_old : 2d np.ndarray\n", " the v displacement of the vector field of the previous pass\n", "\n", " subpixel_method: string\n", " the method used for the subpixel interpolation.\n", " one of the following methods to estimate subpixel location of the peak:\n", " 'centroid' [replaces default if correlation map is negative],\n", " 'gaussian' [default if correlation map is positive],\n", " 'parabolic'\n", "\n", " MinMaxU : two elements tuple\n", " sets the limits of the u displacment component\n", " Used for validation.\n", "\n", " MinMaxV : two elements tuple\n", " sets the limits of the v displacment component\n", " Used for validation.\n", "\n", " std_threshold : float\n", " sets the threshold for the std validation\n", "\n", " median_threshold : float\n", " sets the threshold for the median validation\n", "\n", " filter_method : string\n", " the method used to replace the non-valid vectors\n", " Methods:\n", " 'localmean',\n", " 'disk',\n", " 'distance',\n", "\n", " max_filter_iteration : int\n", " maximum of filter iterations to replace nans\n", "\n", " filter_kernel_size : int\n", " size of the kernel used for the filtering\n", "\n", " interpolation_order : int\n", " the order of the spline interpolation used for the image deformation\n", "\n", " Returns\n", " -------\n", " x : 2d np.array\n", " array containg the x coordinates of the interrogation window centres\n", "\n", " y : 2d np.array\n", " array containg the y coordinates of the interrogation window centres\n", "\n", " u : 2d np.array\n", " array containing the u displacement for every interrogation window\n", "\n", " u : 2d np.array\n", " array containing the u displacement for every interrogation window\n", "\n", " mask : 2d np.array\n", " array containg the mask values (bool) which contains information if\n", " the vector was filtered\n", "\n", " \"\"\"\n", "\n", " x, y = get_coordinates(np.shape(frame_a), window_size, overlap)\n", "\n", " \"calculate the y and y coordinates of the interrogation window centres\"\n", " \"\"\"The interpolation function dont like meshgrids as input. Hence, the\n", " edges must be extracted to provide the sufficient input. x_old and y_old\n", " are the coordinates of the old grid. x_int and y_int are the coordinates\n", " of the new grid\"\"\"\n", " \n", " import pdb\n", " # pdb.set_trace()\n", " \n", " print(f\"Iteration {current_iteration}\")\n", " \n", "\n", " y_old = y_old[:, 0]\n", " # y_old = y_old[::-1]\n", " x_old = x_old[0, :]\n", " \n", " print(x_old,y_old)\n", " \n", " \n", " y_int = y[:, 0]\n", " # y_int = y_int[::-1]\n", " x_int = x[0, :]\n", " \n", " print(x_int,y_int)\n", "\n", " # interpolating the displacements from the old grid onto the new grid\n", " # y befor x because of numpy works row major\n", " ip = RectBivariateSpline(y_old, x_old, u_old, kx=2, ky=2)\n", " u_pre = ip(y_int, x_int)\n", "\n", " ip2 = RectBivariateSpline(y_old, x_old, v_old, kx=2, ky=2)\n", " v_pre = ip2(y_int, x_int)\n", "\n", " # this one is doing the image deformation (see above)\n", " frame_b_deform = frame_interpolation(\n", " frame_b, x, y, u_pre, v_pre, interpolation_order=interpolation_order\n", " )\n", "\n", " if do_sig2noise is True and \\\n", " current_iteration == iterations and \\\n", " iterations != 1:\n", " sig2noise_method = sig2noise_method\n", " else:\n", " sig2noise_method = None\n", "\n", " u, v, s2n = extended_search_area_piv(\n", " frame_a, frame_b_deform,\n", " window_size=window_size,\n", " overlap=overlap,\n", " search_area_size=window_size,\n", " width=sig2noise_mask,\n", " subpixel_method=subpixel_method,\n", " sig2noise_method=sig2noise_method\n", " )\n", "\n", " shapes = np.array(get_field_shape(frame_a.shape, window_size, overlap))\n", " u = u.reshape(shapes)\n", " v = v.reshape(shapes)\n", " s2n = s2n.reshape(shapes)\n", "\n", " # adding the recent displacment on to the displacment of the previous pass\n", " u += u_pre\n", " v -= v_pre\n", "\n", " # validation using gloabl limits and local median\n", " u, v, mask_g = validation.global_val(u, v, MinMaxU, MinMaxV)\n", " u, v, mask_s = validation.global_std(u, v, std_threshold=std_threshold)\n", " u, v, mask_m = validation.local_median_val(\n", " u,\n", " v,\n", " u_threshold=median_threshold,\n", " v_threshold=median_threshold,\n", " size=median_size,\n", " )\n", "\n", " # adding masks to add the effect of alle the validations\n", " mask = mask_g + mask_m + mask_s\n", "\n", " # mask=np.zeros_like(u)\n", " # filter to replace the values that where marked by the validation\n", " if current_iteration != iterations:\n", " # filter to replace the values that where marked by the validation\n", " u, v = filters.replace_outliers(\n", " u,\n", " v,\n", " method=filter_method,\n", " max_iter=max_filter_iteration,\n", " kernel_size=filter_kernel_size,\n", " )\n", "\n", " return x, y, u, v, s2n, mask\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def test_multi_pass_circ():\n", " \"\"\" test fot the multipass \"\"\"\n", " window_size = (128, 64, 32)\n", " overlap = (64, 32, 16)\n", " iterations = 3\n", "\n", " x, y, u, v, s2n = windef.first_pass(\n", " frame_a,\n", " frame_b,\n", " window_size[0],\n", " overlap[0],\n", " iterations,\n", " correlation_method=\"circular\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=True,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " )\n", " u_old = u.copy()\n", " v_old = v.copy()\n", " plt.figure()\n", " plt.quiver(x,y,u,v,color='r')\n", " \n", " for i in range(2, iterations + 1):\n", " x, y, u, v, s2n, mask = windef.multipass_img_deform(\n", " frame_a,\n", " frame_b,\n", " window_size[i - 1],\n", " overlap[i - 1],\n", " iterations,\n", " i,\n", " x,\n", " y,\n", " u,\n", " v,\n", " correlation_method=\"circular\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=False,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " MinMaxU=(-100, 50),\n", " MinMaxV=(-50, 50),\n", " std_threshold=1000000,\n", " median_threshold=200000,\n", " median_size=1,\n", " filter_method=\"localmean\",\n", " max_filter_iteration=10,\n", " filter_kernel_size=2,\n", " interpolation_order=3,\n", " )\n", " plt.figure()\n", " plt.quiver(x,y,u,v,color='b')\n", "\n", " # print(\"\\n\", x, y, u, v, s2n)\n", " \n", " assert np.mean(np.abs(u - shift_u)) < threshold and np.any(u != u_old)\n", " assert np.mean(np.abs(v - shift_v)) < threshold and np.any(v != v_old)\n", " # the second condition is to check if the multipass is done.\n", " # It need's a little numerical inaccuracy." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "test_multi_pass_circ()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# linear cross correlation\n", "def test_first_pass_lin():\n", " \"\"\" test of the first pass \"\"\"\n", " x, y, u, v, s2n = windef.first_pass(\n", " frame_a,\n", " frame_b,\n", " window_size=64,\n", " overlap=32,\n", " iterations=1,\n", " correlation_method=\"linear\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=True,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " )\n", " print(\"\\n\", x, y, u, v, s2n)\n", " plt.quiver(x,y,u,v)\n", " assert np.mean(np.abs(u - shift_u)) < threshold\n", " assert np.mean(np.abs(v - shift_v)) < threshold\n", "\n", "\n", "def test_multi_pass_lin():\n", " \"\"\" test fot the multipass \"\"\"\n", " window_size = (128, 64, 32)\n", " overlap = (64, 32, 16)\n", " iterations = 3\n", "\n", " x, y, u, v, s2n = windef.first_pass(\n", " frame_a,\n", " frame_b,\n", " window_size[0],\n", " overlap[0],\n", " iterations,\n", " correlation_method=\"linear\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=True,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " )\n", " u_old = u.copy()\n", " v_old = v.copy()\n", " i = 1\n", " for i in range(2, iterations + 1):\n", " x, y, u, v, sn, m = windef.multipass_img_deform(\n", " frame_a,\n", " frame_b,\n", " window_size[i - 1],\n", " overlap[i - 1],\n", " iterations,\n", " i,\n", " x,\n", " y,\n", " u,\n", " v,\n", " correlation_method=\"linear\",\n", " subpixel_method=\"gaussian\",\n", " do_sig2noise=False,\n", " sig2noise_method=\"peak2peak\",\n", " sig2noise_mask=2,\n", " MinMaxU=(-100, 50),\n", " MinMaxV=(-50, 50),\n", " std_threshold=1000000,\n", " median_threshold=200000,\n", " median_size=1,\n", " filter_method=\"localmean\",\n", " max_filter_iteration=10,\n", " filter_kernel_size=2,\n", " interpolation_order=3,\n", " )\n", "\n", " print(\"\\n\", x, y, u, v, s2n)\n", " plt.quiver(x,y,u,v)\n", " assert np.max(np.abs(u - shift_u)) < threshold and np.any(u != u_old)\n", " assert np.max(np.abs(v - shift_v)) < threshold and np.any(v != v_old)\n", "\n", " # the second condition is to check if the multipass is done.\n", " # It need's a little numerical inaccuracy." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " [[ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]\n", " [ 31.5 63.5 95.5 127.5 159.5 191.5 223.5]] [[ 31.5 31.5 31.5 31.5 31.5 31.5 31.5]\n", " [ 63.5 63.5 63.5 63.5 63.5 63.5 63.5]\n", " [ 95.5 95.5 95.5 95.5 95.5 95.5 95.5]\n", " [127.5 127.5 127.5 127.5 127.5 127.5 127.5]\n", " [159.5 159.5 159.5 159.5 159.5 159.5 159.5]\n", " [191.5 191.5 191.5 191.5 191.5 191.5 191.5]\n", " [223.5 223.5 223.5 223.5 223.5 223.5 223.5]] [[-5.62150081 -5.63118854 -5.62711791 -5.61035926 -5.60842178 -5.64271644\n", " -5.6286937 ]\n", " [-5.61766025 -5.64184492 -5.62928086 -5.37469241 -5.61659489 -5.63686507\n", " -5.63101431]\n", " [-5.6254699 -5.65763585 -5.62191295 -5.61393824 -5.61914938 -5.60429813\n", " -5.64055421]\n", " [-5.62509928 -5.60967399 -5.59611104 -5.6095403 -5.64228957 -5.60900026\n", " -5.60216998]\n", " [-5.62244183 -5.62372048 -5.61031928 -5.61108526 -5.37292814 -5.64033133\n", " -5.39686542]\n", " [-5.38230552 -5.61752006 -5.62347095 -5.61228985 -5.61453877 -5.63714391\n", " -5.34771702]\n", " [-5.36775971 -5.6102013 -5.62860802 -5.61919778 -5.59542295 -5.61681\n", " -5.31502461]] [[3.24915689 3.28665092 3.26388789 3.32571495 3.27621682 3.25181558\n", " 3.22616336]\n", " [3.24568837 3.29902151 3.29057884 3.23828797 3.2839164 3.23560294\n", " 3.22271697]\n", " [3.26101256 3.25922452 3.26327762 3.26083888 3.26748495 3.24949335\n", " 3.25512838]\n", " [3.29743577 3.27280519 3.27866063 3.26743418 3.2537556 3.244571\n", " 3.25972992]\n", " [3.28027768 3.25960931 3.24293682 3.24000981 3.20112112 3.26138836\n", " 3.26407557]\n", " [3.25283338 3.29824393 3.2690165 3.2359582 3.28863406 3.2807047\n", " 3.26799498]\n", " [3.24410612 3.26092364 3.26917099 3.25335362 3.24524533 3.27838901\n", " 3.24274377]] [[11.20926706 12.42393723 11.46690691 10.47058 12.76496112 11.29643274\n", " 12.92448741]\n", " [11.95504236 11.52272746 11.74513278 11.25058796 13.85809624 11.49433842\n", " 14.11509896]\n", " [10.96628904 12.35334914 12.71852201 10.85532175 11.42462637 12.0810409\n", " 12.45498773]\n", " [11.76330316 11.30505963 11.39726804 12.69497315 12.52202166 12.20898187\n", " 11.35453332]\n", " [11.75371364 12.72162247 12.87225487 12.37211671 12.89221981 12.71851731\n", " 11.63151007]\n", " [12.53352641 13.05355922 13.79648244 12.97578834 11.66695102 14.67601484\n", " 12.12166189]\n", " [10.88329178 12.26896229 12.06663699 12.84482765 13.29658085 11.83799976\n", " 12.99743431]]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABEOElEQVR4nO3dd3xT9foH8M+3g7ZAWS1QRtlDZimUUZqEAg4cjCvDq8hVARGFK4p4FQe48IoIchWliqKIF/C6GaKIDPUqahkyZRdkldIWSneT8/n90TS3oUmbNiknye95v155Neckzfk855w8OSNDkYQQQgj/EqB3ACGEEJ4nzV0IIfyQNHchhPBD0tyFEMIPSXMXQgg/FKR3AACIjIxkq1at9I7hNpJQSukdw20l76Dyl1r8oQ7Av2qxWCwIDAzUO4bP2759+wWSDR3d5hXNvW7duoiIiEBiYiIGDRqEXr16ISjIK6JVyvr16zF79mz069cPRqMRRqMRUVFReseqNJJ47LHHsG3bNphMJhiNRvTv3x/h4eF6R6u0S5cuYdy4cahZs6ZtmXTt2hUBAb6303rgwAFMmTIFnTp1stXSrFkzvWNVyapVq/Diiy8iISEBJpMJJpPJZ2vJysrCvffei/r162Pw4MEYOHAgIiMjr8q0lVInnN5IUvdLr169OHfuXAIgAIaHh/OWW27hggULuGvXLlosFvqKFStWUCllq6V9+/YcP34833vvPR49epSapukd0SUWi4Xjxo2z1REQEMCePXty2rRp/PTTT5mamqp3RJedP3+e11xzja2WunXr8qabbuI///lP/vjjj8zPz9c7ost+/fVXhoeH22pp3bo1//a3v3HJkiU8ePCgz6xfJLl48WJbHQDYpk0b3nXXXXz33Xd5+PBhn6rl7NmzbN26NQFQKcXY2FjOmDGD69evZ3Z2drVNF0AynfRV3Rs7rc1d0zQ+/PDDdgu75BIREcFRo0bxzTff5B9//OH1Cz0pKclhHQDYtGlT3nbbbVy0aBH37dund9RyFRUVccSIEU5r6dixIydOnMhly5bx7Nmzesct159//smWLVs6rCM0NJQmk4lPPvkk169fz9zcXL3jlmvLli0MDQ11WEujRo04cuRILly4kNu3b/f6DaMXX3zR6frVpEkTjhkzhosWLeLBgwf1jlqhgwcPMjIyskwdwcHBNBqNfOaZZ/jDDz+wsLDQY9P0ieZOFm8t3nHHHU4XNgA2aNCAX331lcdmTnUpvSfi6BIbG8udO3fqHbNCeXl5HDx4cLm1PPDAA8zKytI7aoUOHz7MqKgop3WEhoZy3rx5LCoq0jtqhdauXcugoCCntURERHDFihVevyGkaRofffTRctevG264gSkpKXpHdckvv/zCmjVrllvPsGHDPLY17zPNnSQLCgp43XXXOZwpvXr14vnz5z0yU66GmTNnOqyjdevWPlXH5cuX2bdvX4e13H333TSbzXpHdNnu3btZv359h7W88847eserlJUrV9odAiy5hISE8Ndff9U7nss0TeO9997rcJnExcX5xIZDaV999RUDAwMd1rN48WKPvuC61dwBRAPYDGA/gH0AplnHzwPwB4DdAD4HUM86vhWAPAC7rJekiqZRurmTZFZWFuPi4hzOnJEjR/LkyZMemznVSdM03n///U63rJKSknymMaanp7Nbt24Oa4mJieGWLVv0juiyX375hbVr13ZYy2233cYTJ07oHdFlb731ltO9kFmzZjEnJ0fviC4xm80cM2aM08Mzy5cv9/q9kNLee+89h7W0aNGCX3zxhcem425zbwKgp/V6OIBDADoDuB5AkHX8XABz+b/mvreix2U5zZ0kU1NT2a5dO9tMCQ4Otl2vVasW586dy4KCAo/NpOpy5aGmFi1alGmMW7du1TumS86ePcu2bdvalkd0dLRdLaNHj/aZ3edNmzYxJCSEABgZGWm7DoBhYWF85plnfKYxvvzyy7bsVx52at68OVeuXOkTjbGgoIBDhgyxZS9Z10ou8fHx/O233/SO6bLS5xMCAgLsahk6dCiPHTvm9jTcau5l/gH4EsB1V4z7C4B/04PNnSSPHTtmW1l///33Mq/snTp14qZNm9yeQdWtsLCQQ4cOJQD+9NNPXLVqVZnGOGbMGJ9ojMePH2ezZs3YtGlT5uTkcPbs2XYn93xpi3H16tUMCgrimDFjeOzYMY4cOdJumURHR3PVqlU+0RifeOIJAuC8efO4efNmdu/e3a4Wg8HA7du36x2zQjk5OUxISCAAnj59mu+++y4bNWpkq0MpxQkTJvjEu7U0TePUqVMJgH//+9/5xhtvsG7dunYbEXPmzHHr3Voea+7Wxn0SQJ0rxq8BcGep++QA2AlgKwCjk8eaBCAZQHKLFi2c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d+7Mb7/9Vu+ILnvllVecbvXedtttPHHihN4RXVJQUMCbb77ZYR01a9bk888/z9zcXI9MC75yWKa03bt3s379+gTA6667ju3bt7ebSUOGDOH+/fs9MoOq27Jly2y5H3zwQVtdJY1x6tSpTE9P1ztmhSwWC++8807bSjpp0iS73emIiAguXrzY68+JkOTly5fZp08fAmBiYiJHjBhht35dc8013LBhg94xXZKcnMzw8HAC4K233srWrVuXOdx07NgxvWO6ZNasWbbc999/v90J19DQUM6aNcsn3pCQm5vLgQMHEig+cT9s2LAyhzNXrVrl9kaqTzZ3kty2bRtr1arFuXPnsqCggK+88optJS5pjNOmTWNeXp5bM+hq+Ne//kUATElJYVpaGu+//34GBATYNcZ3331X75gVKiws5PDhwxkdHU2S3LFjB41Go92KGxMTw23btumctGJpaWns1KkTp0yZQpJcv359mY2IW2+9lWfPntU5acW2bNnC0NBQLlu2jHl5eZwzZw5r1qxpqyMkJIRPPfWU17/waprGadOmEQCzs7N57Ngxjho1ym6ZNG/enJ9++qneUSuUlZXFvn37snPnziTJDRs2sEuXLna1GAwG7tu3r8rT8NnmTpKbNm3ismXLbMPnzp3jhAkTbFuM/fr184m3sJHkM888Y3eSa9euXTSZTLYF/dRTT+mYznV5eXl86KGHbMOapnHVqlWMjo621bJ161YdE7ruzz//tHtRzc/P50svvcRatWoRABs1asTMzEz9AlbCmjVruH79etvwn3/+yTvuuMO2TIYOHapjOtdZLBbed999dlu1W7ZssXuH0KJFi3RM6LqMjAxOnjzZNlxUVMQ333yTERERtg3U/7fNnaTD5r19+3YajUb+8ssvlZ4hetE0rcxumKZp/Oijj9i/f3+f2N0s4Wh3Micnh7Nnz+bdd9+tQyLPOnXqFG+//XYuXbpU7yiV4mi5/PDDD+zXrx8PHz6sQ6KqcfScN5vNfOuttzhw4EAWFRXpkKpqHO0tZWRk8OGHH+Yjjzzi1mOX19xV8e36iouLY3JycqX/j6RPnEX//0aWi6hO/rR+uVuLUmo7yThHt3nVWyEry18WsL+R5SKqkz+tX9VZS5Wbu1IqWim1WSm1Xym1Tyk1zTr+GaXUaaXULuvlJs/FFUII4Qp3vjjMDOARkjusv6O6XSn1rfW2V0m+4n48IYQQVVHl5k7yLICz1uuXlVIHAJT9uJwQQoirziPH3JVSrQDEAvjFOmqqUmq3UmqpUso3vi9ACCH8iNvNXSlVG8CnAB4imQVgMYC2AHqgeMt+vpP/m6SUSlZKJaelpbkbQwghRCluNXelVDCKG/u/SX4GACRTSVpIagCWAOjj6H9Jvk0yjmRcw4YN3YkhhBDiCu68W0YBeBfAAZILSo1vUupufwGwt+rxhBBCVEWVP8SklDIA+AHAHgAlP075BIDbUXxIhgBSANxnPfla3mOlAThxxehIAN78I4uSr+q8ORvg3fm8ORsg+dxRlWwtSTo89OEVn1B1RCmV7OyTV95A8lWdN2cDvDufN2cDJJ87PJ3Npz+hKoQQwjFp7kII4Ye8ubm/rXeACki+qvPmbIB35/PmbIDkc4dHs3ntMXchhBBV581b7kIIIapImrsQQvghr2ju3v71wUqpFKXUHmuGZOu4Bkqpb5VSh61/dfkOHaVUx1LzZ5dSKksp9ZCe8876nULnlVJ7S41zOL9UsdeUUkes30fUU4ds85RSf1in/7lSqp51fCulVF6peZhUndnKyed0WSqlZlrn3UGl1A065fuoVLYUpdQu6/irOv/K6SO6r3vlZKu+dc/ZTzRdzQuAJgB6Wq+HAzgEoDOAZwDM8IJ8KQAirxj3MoDHrdcfBzDXC3IGAjgHoKWe8w6ACUBPAHsrml8AbgKwHoAC0A/ALzpkux5AkPX63FLZWpW+n47zzuGytD5HfgcQAqA1gKMAAq92vitunw9glh7zr5w+ovu6V062alv3vGLLneRZkjus1y8D8IWvDx4OYJn1+jIAI/SLYjMYwFGSV37a96oi+T2AjCtGO5tfwwF8wGLbANRT9l9hUe3ZSG4gabYObgPQvLqmXxEn886Z4QBWkSwgeRzAETj5LidPKS+fUkoBGANgZXVmcKacPqL7uucsW3Wue17R3EtT3vn1wQSwQSm1XSk1yTquMf/3tQrnADTWJ5qdv8L+ieUN866Es/nVDMCfpe53Cvq+sI9H8dZcidZKqZ1Kqa1KKaNeoeB4WXrbvDMCSCV5uNQ4XebfFX3Eq9Y9Bz2uhEfXPa9q7qqKXx98FRhI9gRwI4ApSilT6RtZvB+l63tKlVI1AAwD8LF1lLfMuzK8YX45opR6EsW/MPZv66izAFqQjAUwHcAKpVQdHaJ57bK8wu2w37jQZf456CM2eq97zrJVx7rnNc1dufH1wdWN5Gnr3/MAPrfmSC3ZhbP+Pa9HtlJuBLCDZCrgPfOuFGfz6zSA6FL3a24dd1Uppe4GcAuAsdYGAOvhjnTr9e0oPqbd4WpnK2dZesW8AwClVBCAWwF8VDJOj/nnqI/AS9Y9J9mqbd3ziuZuPVbnlV8frJSqpYp/IxZKqVooPgGyF8BqAHdZ73YXgC+vdrYr2G01ecO8u4Kz+bUawN+s71zoB+ASK/gWUU9TSg0B8A8Aw0jmlhrfUCkVaL3eBkB7AMeuZjbrtJ0ty9UA/qqUClFKtbbm+/Vq57O6FsAfJE+VjLja889ZH4EXrHvl9LjqW/eq6+xwZS4ADCjeVdoNYJf1chOA5Sj+SuHdKF4QTXTI1gbF70j4HcA+AE9ax0cA+A7AYQAbATTQcf7VApAOoG6pcbrNOxS/yJwFUITi45gTnM0vFL9T4Q0Ub5nsARCnQ7YjKD72WrLuJVnvO9K6zHcB2AFgqE7zzumyBPCkdd4dBHCjHvms498HMPmK+17V+VdOH9F93SsnW7Wte/L1A0II4Ye84rCMEEIIz5LmLoQQfkiauxBC+CFp7kII4YekuQshhB+S5i6EEH5ImrsQQvih/wPn6kRe62I/CAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "test_first_pass_lin()" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:windef] *", "language": "python", "name": "conda-env-windef-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }