
threshold 3Dwave

GIo
Hi,
I am Giorgia and I am really new in Igor. I would like to analyze a movie (let's say 500 frames). The movie shows particles (which are my ROI) travelling along a channel. I want to create a projection of these particles (so at the end I should obtain one single image), and I would need to threshold and average the signal of the particles (so, I guess of the single frame).
In this case I would need to threshold a 3D wave. But, does the Imagethreshold return a 2D wave?if so, this part of the code is not correct "ImageTransform/R=M_Imagethresh averageImage input3dwaveNup", isn't it?
This the code that I am using:
function Part (input3DwaveNup,input3DwaveCargo,threshold) wave input3DwaveNup, input3DwaveCargo variable threshold wave M_Imagethresh, M_AveImage variable i,j,k, waveMaxNup, WaveMaxCargo, WaveMinNup, WaveMinCargo, ImageNum = dimsize(input3dwaveNup,2) variable t1=startmstimer, timerRefNum make/d/o/n=(dimsize(input3dwaveNup,0),dimsize(input3dwaveNup,1), dimsize(input3dwaveNup,2)) dummy3D make/d/o/n=(dimsize(input3dwaveNup,0),dimsize(input3dwaveNup,1)) outputwaveNup = 0, outputwaveCargo = 0, RatioCargoVsNup=0 Imagethreshold/T=(threshold) input3dwaveNup ImageTransform/R=M_Imagethresh averageImage input3dwaveNup outputwaveNup = M_aveimage ImageTransform/R=M_Imagethresh averageImage input3dwavecargo outputwavecargo = M_aveimage newimage outputwaveNup newimage outputwaveCargo end
I am not sure I understand what you mean by "projection of these particles". One possibility is that you want the result of:
Since you appear to have a threshold parameter you could replace the threshold and the average with:
Note that your code contains two Make commands that are not necessary. For example, the combination of:
can be replaced by:
HTH,
A.G.
WaveMetrics, Inc.
January 11, 2018 at 01:37 pm - Permalink
You could write your own code to replace the ImageTransform functions, perhaps using MatrixOp functions:
January 11, 2018 at 02:07 pm - Permalink
I still have some issues with the code, but it's going better.
I would have one more question about how to load my BigTIFF. They are usually bigger than 5 GB. Is it possible to load such a big file in Igor7?
Or maybe, is there a way to open the first 500 frames of the movie, so run the analysis, then open the others 500 frame of the movie, run the analysis.... at the end sum the n results? I should have one single image as the final results.
Thank you!
G
January 12, 2018 at 06:16 am - Permalink
You can read a bigTiff image. Check the documentation for ImageLoad with the /BIGT=1 flag.
A.G.
January 12, 2018 at 10:41 am - Permalink
For the bigTIf file, I tried and checked the /BIGT flag, but doesn't work. Upload only the first 2 frames.
Anyway I will do a new post with a correct thread.
Thanks thanks!!!
Gio
January 14, 2018 at 07:08 am - Permalink