LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Does NI offer 3D deconvolution?

Does anyone know if NI (any version) offer something along the lines of 3D deconvolution for rendering a series of images (stepped along a z-axis) into a surface or volume 3D image?  There are imaging companies that offer this software with there microscope packages, etc. but they tend to be proprietary and only sold as a complete equipment package, or the sales engineers aren't willing to say that their version will work for rendering a cavity type of object (mostly this is used for modeling of solids with an external surface that is fully visible). 
 
Any help or points in the right direction would be greatly appreciated!  Thank you!!!
 
Jim
 
Message 1 of 58
(6,197 Views)
I'm certainly not a domain expert, but I believe National Instruments currently only supports 2D convolution. For more information on LabVIEW's Deconvolution function, see the following help page.
Jarrod S.
National Instruments
0 Kudos
Message 2 of 58
(6,138 Views)
This is a good reference for 1D array deconvolution but the set of operations should be applicable for 2D matrix also (I think).  I don't know how you would get from 2D to 3D --> if you figured it out by now, let us know.

Sincerely,

Don
0 Kudos
Message 3 of 58
(6,062 Views)

Hi Don,

LabVIEW still only supports 2D convolution in 8.2.  I would imagine that there should be a way to get from 2D to 3D as I found several sites (after a google search) regarding this.  However I have not tried this out.

Regards,

Steve

0 Kudos
Message 4 of 58
(6,031 Views)

Remember we are talking DEconvolution here, not convolution.  In fact, there is no canned fx that I can find in LabVIEW 8.2 even for 2D deconvolution.  You need to perform 2D FFTs on your inputs, divide them, and then do a 2D inverse FFT.   I accomplished it using Vision 2D FFT functions (which I include as screenshot here).  It is surprising to me that LabVIEW has the 2D convolution but not 2D deconvolution.  Additionally, my experience with the 1D deconvolution function yielded a single scalar value (I expected a 1D array because that was the format for my inputs), so I used the FFT/Division/Inverse FFT strategy here as well.  It is actually a good sanity check for me to post this here

I still have some questions regarding 1D (waveform) deconvolution in terms of the final result. Reconvolving the result with the reference approximately gives the original response with some artifacts likely due to the math - but overall it looks correct.

Sincerely,

 

Don

Download All
Message 5 of 58
(6,016 Views)
Don,
 
I'm quite fascinated by your 2D deconvolution diagram : it holds the solution to a problem that I tried to solve a year ago (working with microscopy images). However, my maths capability are enough to understand (I hope so...) what's going on there, but not enough to allow me to create it myself.
I have reproduced the diagram, but I'm not getting any result, except a black image. Could you explain how you established the point spread function (I thought that was just an image (same size as the image to be deconvoluted) of a single blurred point).
Am I missing something ?  Could you advise ?

Message Edité par chilly charly le 09-21-2006 01:42 PM

Chilly Charly    (aka CC)
0 Kudos
Message 6 of 58
(5,997 Views)
I'll have to get more details for you on how the PSF for the (in this case, pulsed terahertz) system was physically obtained.  I was sent the data to process. It is an impulse response function to the THz stimulation.  I am attaching the tab-delimited text file here which you can plot in excel using one of the surface graph modes.  Viewing it in 3D allows you to clearly see the center peak above the lower background.
 
Don
0 Kudos
Message 7 of 58
(5,983 Views)
ps. Here are some more details from the experimentalist as to how the PSF was generated. A 1/16th x 1/16th inch thin metal square target was placed at the focus distance of the instrument. A 1 inch x 1.1 inch scan area with a 0.0037” step increment with the target ~ centered was performed to generate the PSF.  Some computational modification of the experimentally-obtained PSF was used to obtain an "optimum" PSF. Hope this helps.
Message 8 of 58
(5,968 Views)
There is nothing built-in, but writing your own is a simple extension of 1D or 2D deconvolution.  However, the main limitation is that you need to create a number of 3D Complex arrays, and therefore it is easy to run out of memory - especially as the memory for any given array must be contiguous in Windows.

1) Write your own 3D FFT and Inverse FFT routines - straightforward as FFTs are seperable, hence you can process each dimension independently (i.e. Take the 1D FFT of each X-column of your image, then the 1D FFT of each Y-column of that result, then the 1D FFT of each Z-column of that).
2) Write a 3D deconvolution routine - identical to 1D or 2D, except that the arrays are 3D.  Because deconvolution is ill-posed, you will probably need some sort of regularisation - the simplest would be a Weiner deconvolution (as illustrated in the attachment where the inputs are the FFTs of the image and PSF, and the output is the FFT of the result).

Note: you'll probably need to pad image and PSF arrays prior to FFT or you'll get wrap-around errors.  Also, if running out of memory, it is also possible to process sub-regions of the image and then stitch the results together afterwards.

Cheers ~ Greg


Message 9 of 58
(5,951 Views)
This is my attempt to deconvolute a blurred image. Since it does not give the expected result, I guess there is something wrong. 🙂
Could some Fourrier transform expert give a look at the diagram and put me back on track please ?
Chilly Charly    (aka CC)
Message 10 of 58
(5,905 Views)