/*This code runs PIV on an image sequence and performs a temporal average of each velocity vector*/ macro "Run PIV on Stack [f1]"{ id0 = getImageID(); slices = nSlices; outputStr = ""; xcomp = 0; ycomp = 0; mag = 0; //creates dialog boxes to enter important parameters, these may vary by experimental setup Dialog.create("Multi-slice PIV"); Dialog.addNumber("Interrogation window 1", 256); Dialog.addNumber("search window 1", 512); Dialog.addNumber("vector spacing 1", 128); Dialog.addNumber("Interrogation window 2", 128); Dialog.addNumber("search window 2", 256); Dialog.addNumber("vector spacing 2", 64); Dialog.addNumber("Interrogation window 3", 0); Dialog.addNumber("search window 3", 0); Dialog.addNumber("vector spacing 3", 0); Dialog.addNumber("correlation threshold", 0.8); Dialog.addNumber("Video Frames Per Second", 2000); Dialog.addNumber("Pixels per mm", 475); Dialog.show; piv1 = Dialog.getNumber(); sw1 = Dialog.getNumber(); vs1 = Dialog.getNumber(); piv2 = Dialog.getNumber(); sw2 = Dialog.getNumber(); vs2 = Dialog.getNumber(); piv3 = Dialog.getNumber(); sw3 = Dialog.getNumber(); vs3 = Dialog.getNumber(); corr = Dialog.getNumber(); fps = Dialog.getNumber(); pixelspermm = Dialog.getNumber(); path = getDirectory("select a folder to save PIV results"); for(s=1;s