From: Corey Kelly on 20 May 2010 10:22 Hello, I'm beginning a fairly involved program, which is going to require a lot of user interaction, so I'm programming my first GUI. I have a lot of TIFF image files, which contain multiple frames (time series.) I have code written to import the image as a 3D array of data points, and I'm able to display single frames, where the time dimensions is controlled by a slider. The extent of the user interaction I'd like to implement is the following: 1. Image stack is shown to the user, looping through the frames automatically. 2. User indicates (preferably by mouse clicks) points of interest in the image (for my purposes, these points are stationary in the spatial dimensions, but fluctuate in brightness with time.) 3. Time series data from each of the points of interest is stored to an array for processing. The data processing I'll be doing should be trivial if I can extract the data using this method. Does anybody have (or know of) some code that might get me started on this? Even advice on the best way to implement this would be appreciated.
From: Corey Kelly on 20 May 2010 21:43 "Corey Kelly" <ckelly01(a)uoguelph.ca> wrote in message <ht3gic$ocr$1(a)fred.mathworks.com>... > Hello, > > I'm beginning a fairly involved program, which is going to require a lot of user interaction, so I'm programming my first GUI. > I have a lot of TIFF image files, which contain multiple frames (time series.) I have code written to import the image as a 3D array of data points, and I'm able to display single frames, where the time dimensions is controlled by a slider. The extent of the user interaction I'd like to implement is the following: > 1. Image stack is shown to the user, looping through the frames automatically. > 2. User indicates (preferably by mouse clicks) points of interest in the image (for my purposes, these points are stationary in the spatial dimensions, but fluctuate in brightness with time.) > 3. Time series data from each of the points of interest is stored to an array for processing. > > The data processing I'll be doing should be trivial if I can extract the data using this method. Does anybody have (or know of) some code that might get me started on this? Even advice on the best way to implement this would be appreciated. Alright. Maybe this is a bit much to ask. I'll make this one step simpler, as the last step I need only involves some matrix operations which shouldn't be too hard to figure out. If anybody can help with any of the remaining problems, I'd appreciate it! 1. Image sequence (already in memory) is shown in a window, looping through frames. 2. When the user clicks on the image, the image coordinates of the mouse pointer are stored to memory. Even if somebody could point me to another program which does either of these things, I can sift through the code and pick out what I need. Thanks in advance!
From: ImageAnalyst on 20 May 2010 21:55 Wouldn't you just do timeSeriesData = imageArray3D(x, y, :); That gets ALL of the values (i.e. for every one of the times, which are slices in your Z direction) for a particular (x,y) coordinate. Isn't that what you want?
From: Corey Kelly on 20 May 2010 22:07 ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <1c6c9155-9f57-499e-b5d7-86b4f1079f0d(a)f14g2000vbn.googlegroups.com>... > Wouldn't you just do > > timeSeriesData = imageArray3D(x, y, :); > > That gets ALL of the values (i.e. for every one of the times, which > are slices in your Z direction) for a particular (x,y) coordinate. > Isn't that what you want? That would be my "Step 3." The part I'm having more trouble is allowing the user to interactively choose the (x,y). I'm basically looking at a high resolution image stack, and choosing the ROIs which will then be processed. The ROIs are only easily identified if the image is scrolling through the time frames.
From: ImageAnalyst on 20 May 2010 22:18
On May 20, 10:07 pm, "Corey Kelly" <ckell...(a)uoguelph.ca> wrote: > That would be my "Step 3." The part I'm having more trouble is allowing the user to interactively choose the (x,y). I'm basically looking at a high resolution image stack, and choosing the ROIs which will then be processed. The ROIs are only easily identified if the image is scrolling through the time frames. ------------------------------------------------------------------ Why don't you average together all your frames, or take the max or min of them. That might make it easier to decide where to locate your points or ROI than just looking at a single time point image. You'll probably get a better signal - more contrast with less noise. Then you can use ginput(), imrect(), imellipse(), or something like that. |