http://imagej.273.s1.nabble.com/wait-for-a-result-to-appear-tp5017029p5017046.html
> deconvolution, and write a wrapper for multichannel images. I will
LOCI may have resources in the near future to help. Let's discuss in more
> Hi Timothy
>
> I helped write the deconvolution ops, so I wish they were further along,
> however right now they do not have a GUI placed around them, or are they
> easily usable with multi-channel images.
>
> Have you tried deconvolution lab?? It is OK for single channel images.
> Unfortunately deconvolution lab has issues with multi channel images. It
> is not easy to deconvolve multichannel images without splitting channels
> before hand.
>
> Also it is not easy to script with Deconvolution Lab.
>
> In the near future I hope to be able to do more testing on the ops
> deconvolution, and write a wrapper for multichannel images. I will keep
> you updated.
>
> Brian
>
>
> On Wed, Aug 17, 2016 at 3:29 PM, Feinstein, Timothy N <
[hidden email]>
> wrote:
>
> > Thanks Curtis. The first talk refers to Iterative 3D Deconvolution,
> which
> > was released and last updated in 2005. Multiview deconvolution is for
> > light sheet data. Heck I would be using it now if I could get multiview
> > reconstruction to work on my home-made instrument. Apparently you need a
> > very carefully registered sample holder.
> >
> > I understand that Ops and GPU deconvolution will be great, eventually.
> > Could anyone share their favorite deconvolution plugin that they use
> right
> > now?
> >
> > I have used commercial packages like Huygens with great success. However
> > at the moment I would like to use ImageJ to deconvolve basic widefield
> > data for routine tasks. PID is the best of the options I have tested but
> > it appears not super compatible with scripting.
> >
> > All the best,
> >
> >
> > Tim
> >
> > Timothy Feinstein, Ph.D.
> > Research Scientist
> > University of Pittsburgh Department of Developmental Biology
> >
> >
> >
> >
> >
> > On 8/17/16, 11:01 AM, "ImageJ Interest Group on behalf of Curtis Rueden"
> > <
[hidden email] on behalf of
[hidden email]> wrote:
> >
> > >Hi Timothy,
> > >
> > >It is worth noting that Parallel Iterative Deconvolution has not been
> > >maintained for many years. I wonder if you have tried any of the more
> > >recent deconvolution plugins and algorithms?
> > >
> > >There were two presentations at the last ImageJ conference:
> > >
> > >* Brian Northan - Flexible Deconvolution using ImageJ Ops
> > > -- video -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > https%3a%2f%2fvimeo.com
> > >%2f140098821&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641d08d3c6b0
> > >f63b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=
> > J4MQM6Df0cOfXJP5UEjdpyiw
> > >UsSsJbqX6QqXAqqJsDg%3d
> > > -- abstract -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.net
> > >%2fConference_2015_Program%23Brian_Northan_-_&data=01%
> > 7c01%7ctnf8%40pitt.e
> > >du%7c735fd07cf8494373641d08d3c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112
> > fd0d%7
> > >c1&sdata=sZJpBwn6yHYxk3TzzGkWcFCSBIu%2b1jOIWkM7E5eUmQA%3d
> > >Flexible_deconvolution_using_ImageJ_Ops
> > > -- slides -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > https%3a%2f%2fimagej.gi
> > >thub.io%2fpresentations%2f2015-09-04-&data=01%7c01%7ctnf8%40pitt.edu
> > %7c735
> > >fd07cf8494373641d08d3c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112
> > fd0d%7c1&sdata
> > >=lDtyBOntnQcBWB%2bEdh5dH6GueMCEjc2AixX5oSygyzI%3d
> > >imagej2-deconvolution/
> > >
> > >* Benjamin Schmid - Real-time multi-view deconvolution of time-lapse
> data
> > >on the GPU
> > > -- video -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > https%3a%2f%2fvimeo.com
> > >%2f140098826&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641d08d3c6b0
> > >f63b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=
> > W5yKLyy8h3JfHp4nPZberW7a
> > >7gWFAwWfmQdGaWxscuI%3d
> > > -- abstract -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.net
> > >%2fConference_2015_Program%23&data=01%7c01%7ctnf8%40pitt.edu
> > %7c735fd07cf84
> > >94373641d08d3c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112
> > fd0d%7c1&sdata=vHT%2f7
> > >4UKsKVqYwFR21Y2bIkEJB6A5xRzY4reQyaVUCo%3d
> > >Benjamin_Schmid_-_Real-time_multi-view_deconvolution_of_
> > >time-lapse_data_on_the_GPU
> > >
> > >See also:
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.net
> > >%2fDeconvolution&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641d08d3
> > >c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=1qD5mPYlW4Dcu%
> > 2fXO2S
> > >qzXPOW6k7sW3ghnLcE%2bqSz6gw%3d
> > >
> > >And improvements to that wiki page are very welcome.
> > >
> > >Regards,
> > >Curtis
> > >
> > >--
> > >Curtis Rueden
> > >LOCI software architect -
> > >
https://na01.safelinks.protection.outlook.com/?url=> http%3a%2f%2floci.wisc
> > .
> > >edu%2fsoftware&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641d08d3c6
> > >b0f63b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=
> > Dg44RANnXrWmSyj%2bH5hZ
> > >ahzOvervqLECK6%2fzlNQVPGE%3d
> > >ImageJ2 lead, Fiji maintainer -
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.net
> > >%2fUser%3aRueden&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641d08d3
> > >c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=
> > w6O2NK61LNyiQffGf9Q9
> > >P8wn%2f8DTGSEx4EvGjPWZrMg%3d
> > >Did you know ImageJ has a forum?
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fforum.imag
> > >ej.net%2f&data=01%7c01%7ctnf8%40pitt.edu%7c735fd07cf8494373641d08d3c6b0
> > f63
> > >b%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=ETP6QBbg%
> > 2fsFtHR7fc2ZCxJbr5
> > >uKj1LX0pL25izztuSI%3d
> > >
> > >
> > >On Wed, Aug 17, 2016 at 9:41 AM, Feinstein, Timothy N <
[hidden email]>
> > >wrote:
> > >
> > >> Thank you Aryeh! I feel silly for missing that basic bit of Java
> logic.
> > >>
> > >> Well, that part works now. Now my problem is that any subsequent
> > >>command
> > >> appears to supercede Parallel Iterative Deconvolution, even 'wait()'.
> > >>It
> > >> is entirely possible that PID automation only works in isolation and
> not
> > >> inside any more extensive macro. If anyone thinks the problem is
> > >> solvable, I pasted my code at the bottom. Note that some long lines of
> > >> code will have several paragraph breaks in them when pasting out of an
> > >> email.
> > >>
> > >> All the best,
> > >>
> > >>
> > >> Tim
> > >>
> > >> Timothy Feinstein, Ph.D.
> > >> Research Scientist
> > >> University of Pittsburgh Department of Developmental Biology
> > >>
> > >>
> > >>
> > >> On 8/16/16, 10:41 PM, "ImageJ Interest Group on behalf of Aryeh Weiss"
> > >> <
[hidden email] on behalf of
[hidden email]> wrote:
> > >>
> > >> >On 17/08/2016 4:34 AM, Feinstein, Timothy N wrote:
> > >> >>Hello,
> > >> >>
> > >> >>I am trying to automate the plugin Parallel Iterative Deconvolution.
> > >> >>This plugin does not seem designed for multi-channel images and
> > >> >>especially for doing them in batches, so I am trying to patch
> > >>together a
> > >> >>work-around. The workflow is basically to pre-process for
> background
> > >> >>subtraction, split channels, deconvolve each channel with the
> > >> >>appropriate point spread function, delete the originals, merge the
> > >> >>results back into one composite and save.
> > >> >>
> > >> >>This all works fine, except that ImageJ cannot tell that the plugin
> is
> > >> >>still running, so it blazes ahead without the results appearing. I
> > >> >>believe in theory I can use the WHILE statement to say something
> like:
> > >> >>
> > >> >>while (isOpen("C1-"+Filename[i]+"_WPL_decon") = False) {
> > >> >> wait(1000);
> > >> >>}
> > >> >
> > >> >I think you need == , not =.
> > >> >Try:
> > >> >
> > >> >while (isOpen("C1-"+Filename[i]+"_WPL_decon") == False) {
> > >> >
> > >> >
> > >> >>Ideally this should hold the macro in stasis until the deconvolution
> > >> >>cycle is finished and a result appears. However ImageJ seems to
> > >>think I
> > >> >>am missing a parentheses at the equals sign. And I am not sure
> > >>whether
> > >> >>this strategy would work anyway.
> > >> >>
> > >> >>Any advice would be appreciated. Best,
> > >> >>
> > >> >>
> > >> >>Tim
> > >> >>
> > >> >>Timothy Feinstein, Ph.D.
> > >> >>
> > >> >>--
> > >> >>ImageJ mailing list:
> > >> >><a href="https://na01.safelinks.protection.outlook.com/?url=http%">https://na01.safelinks.protection.outlook.com/?url=http%
> > >> 3a%2f%2fimagej.ni
> > >> >>h.gov%2fij%2flist.html&data=01%7c01%7ctnf8%40pitt.edu%7cce
> > >> 9b31c0a3ad42887
> > >> >>10708d3c649942d%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&
> > >> sdata=aK0y7w7ZqIAw
> > >> >>8CRfzK6chXWzbWzCmjTj6vZqjPDDi6k%3d
> > >> >
> > >> >
> > >> >--
> > >> >Aryeh Weiss
> > >> >Faculty of Engineering
> > >> >Bar Ilan University
> > >> >Ramat Gan 52900 Israel
> > >> >
> > >> >Ph: 972-3-5317638
> > >> >FAX: 972-3-7384051
> > >> >
> > >> >--
> > >> >ImageJ mailing list:
> > >> ><a href="https://na01.safelinks.protection.outlook.com/?url=http%3a%">https://na01.safelinks.protection.outlook.com/?url=http%3a%
> > >> 2f%2fimagej.nih
> > >> >.gov%2fij%2flist.html&data=01%7c01%7ctnf8%40pitt.edu%7cce9b
> > >> 31c0a3ad4288710
> > >> >708d3c649942d%7c9ef9f489e0a04eeb87cc3a526112fd0d%7c1&sdata=
> > >> aK0y7w7ZqIAw8CR
> > >> >fzK6chXWzbWzCmjTj6vZqjPDDi6k%3d
> > >> dir = getDirectory("Input files");
> > >> output = getDirectory("Save the results");
> > >> filename = getFileList(dir);
> > >>
> > >> _______________________________________________________
> > >>
> > >>
> > >> dir = getDirectory("Input files");
> > >> output = getDirectory("Save the results");
> > >> filename = getFileList(dir);
> > >>
> > >>
> > >> pathGreen = File.openDialog("Select the green PSF");
> > >> pathRed = File.openDialog("Select the red PSF");
> > >> pathFarRed = File.openDialog("Select the far red PSF");
> > >>
> > >> setBatchMode(false);
> > >>
> > >> //define the parameters of deconvolution
> > >>
> > >> function deconvolution() {
> > >> pathToBlurredImage = image;
> > >> pathToDeblurredImage = deconImage;
> > >> pathToPsf = psf;
> > >> boundary = "REFLEXIVE"; //available options: REFLEXIVE, PERIODIC,
> > >>ZERO
> > >> resizing = "AUTO"; // available options: AUTO, MINIMAL,
> > >> NEXT_POWER_OF_TWO
> > >> output = "SAME_AS_SOURCE"; // available options: SAME_AS_SOURCE,
> > >>BYTE,
> > >> SHORT, FLOAT
> > >> precision = "SINGLE"; //available options: SINGLE, DOUBLE
> > >> threshold = "-1"; //if -1, then disabled
> > >> maxIters = "10";
> > >> nOfThreads = "8";
> > >> showIter = "false";
> > >> gamma = "0";
> > >> filterXY = "1.0";
> > >> filterZ = "1.0";
> > >> normalize = "false";
> > >> logMean = "false";
> > >> antiRing = "true";
> > >> changeThreshPercent = "0.01";
> > >> db = "false";
> > >> detectDivergence = "true";
> > >>
> > >> call("edu.emory.mathcs.restoretools.iterative.ParallelIterat
> > >> iveDeconvolutio
> > >> n3D.deconvolveWPL", pathToBlurredImage, pathToPsf,
> pathToDeblurredImage,
> > >> boundary, resizing, output, precision, threshold, maxIters,
> nOfThreads,
> > >> showIter, gamma, filterXY, filterZ, normalize, logMean, antiRing,
> > >> changeThreshPercent, db, detectDivergence);
> > >> }
> > >>
> > >> //process each file in the input folder
> > >>
> > >> for (i=0; i<filename.length; i++) {
> > >> if(endsWith(filename[i], ".tif")) {
> > >> open(dir+filename[i]);
> > >> red = "C2-"+filename[i]+"_WPL_decon";
> > >> blue = "C3-"+filename[i]+"_WPL_decon";
> > >> green = "C1-"+filename[i]+"_WPL_decon";
> > >>
> > >> //pre-processing for PID: background subtract, add a small saturated
> > >>spot
> > >> to the first frame in each channel (to get around a quirk in PID's
> > >> design), crop (if desired), split channels
> > >>
> > >> name=getTitle;
> > >> run("Subtract Background...", "rolling=50 stack");
> > >> run("Canvas Size...", "width=256 height=256 position=Center
> > >> zero");
> > >> Stack.setSlice(1)
> > >> Stack.setChannel(1)
> > >> makeRectangle(0, 0, 3, 3);
> > >> run("Add...", "value=65535 slice");
> > >> Stack.setChannel(2)
> > >> makeRectangle(0, 0, 3, 3);
> > >> run("Add...", "value=65535 slice");
> > >> Stack.setChannel(3)
> > >> makeRectangle(0, 0, 3, 3);
> > >> run("Add...", "value=65535 slice");
> > >> run("Split Channels");
> > >>
> > >> //deconvolve each channel
> > >>
> > >> selectWindow("C1-"+filename[i]);
> > >> image = getTitle;
> > >> deconImage = image+"_WPL_decon";
> > >> psf = pathGreen;
> > >> deconvolution();
> > >> while (isOpen(image+"_WPL_decon") == false) {
> > >> wait(1000);
> > >> }
> > >>
> > >> //selectWindow("C1-"+name);
> > >> //close;
> > >>
> > >> selectWindow("C2-"+filename[i]);
> > >> image = getTitle;
> > >> deconImage = image+"_WPL_decon";
> > >> psf = pathRed;
> > >> deconvolution();
> > >> while (isOpen(image+"_WPL_decon") == false) {
> > >> wait(1000);
> > >> }
> > >>
> > >> //selectWindow("C2-"+name);
> > >> //close;
> > >>
> > >> selectWindow("C3-"+filename[i]);
> > >> image = getTitle;
> > >> deconImage = image+"_WPL_decon";
> > >> psf = pathRed;
> > >> deconvolution();
> > >> while (isOpen(image+"_WPL_decon") == false) {
> > >> wait(1000);
> > >> }
> > >>
> > >> //selectWindow("C3-"+name);
> > >> //close;
> > >>
> > >> //reassemble a TIFF from the deconvolved channels and save it
> > >>
> > >> run("Merge Channels...", "red=["+red+"] green=["+green+"]
> > >> blue=["+blue+"] gray=*None* create");
> > >> rename(filename[i]+"_deconvolved");
> > >> saveName=getTitle;
> > >> saveAs("Tiff", output+saveName);
> > >> close();
> > >>
> > >> }
> > >> }
> > >>
> > >>
> > >> >
> > >>
> > >> --
> > >> ImageJ mailing list:
> > >>
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.ni
> > >>h.gov%2fij%2flist.html&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf84943736
> > >>41d08d3c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112
> > fd0d%7c1&sdata=1oUyPax9xlcV
> > >>h%2fGJABMkuuskiozXfw3AqW0ZJ1BnzkI%3d
> > >>
> > >
> > >--
> > >ImageJ mailing list:
> > >
https://na01.safelinks.protection.outlook.com/?url=> > http%3a%2f%2fimagej.nih
> > >.gov%2fij%2flist.html&data=01%7c01%7ctnf8%40pitt.edu%
> > 7c735fd07cf8494373641
> > >d08d3c6b0f63b%7c9ef9f489e0a04eeb87cc3a526112
> > fd0d%7c1&sdata=1oUyPax9xlcVh%2
> > >fGJABMkuuskiozXfw3AqW0ZJ1BnzkI%3d
> >
> > --
> > ImageJ mailing list:
http://imagej.nih.gov/ij/list.html> >
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>