Posted by
Arne Seitz-2 on
Sep 28, 2006; 12:29pm
URL: http://imagej.273.s1.nabble.com/Unique-Image-to-Stack-tp3701479p3701482.html
Hi Christophe,
The following plugin should do exactly what you want. Until now it only
works with 8 bit images.
Cheers Arne
import ij.*;
import ij.gui.*;
import ij.process.*;
import ij.plugin.*;
/** Creates a stack from a single picture.
* Comments to
[hidden email]
*/
public class CreateStack_ implements PlugIn {
public void run(String arg)
{
ImagePlus imp = WindowManager.getCurrentImage();
if(imp==null)
{
IJ.noImage();
return ;
}
int numStacks = imp.getStackSize();
if(numStacks>1) {
IJ.error("Must call this plugin on a single
image.");
return;
}
int bd=imp.getBitDepth();
if (bd !=8 || numStacks>1){
IJ.error("Sorry! This Plugin only works on 8-Bit
Image");
return;
}
String sPrompt = "Number of frames ";
int num = (int)IJ.getNumber(sPrompt,1);
if(num==IJ.CANCELED) return;
if(!imp.lock())
return; // exit if in use
ImageProcessor ip = imp.getProcessor();
int w=ip.getWidth();
int h=ip.getHeight();
ImagePlus overlay = NewImage.createByteImage("CreateStack",
w,h,num, NewImage.FILL_BLACK);
ImageProcessor over_ip = overlay.getProcessor();
imp.getProcessor();
for (int i =1;i<=num;i++){
overlay.setSlice(i);
over_ip.copyBits(ip,0,0,Blitter.COPY);
}
overlay.show();
imp.unlock();
}
}
____________________________________________________
Arne Seitz, Scientific Officer
Advanced Light Microscopy Facility
EMBL Heidelberg
+49 6221 387 8467
-----Ursprüngliche Nachricht-----
Von: ImageJ Interest Group [mailto:
[hidden email]] Im Auftrag von
Christophe Leterrier
Gesendet: Donnerstag, 28. September 2006 10:49
An:
[hidden email]
Betreff: Unique Image to Stack ?
Before I go on and write the macro to do that,
Does anybody know if I can quickly use an image and expand it to a
stack, let's say of 121 times this same image ?
Seems silly, but it would be usefull for me because I want to overlay a
fluorescent time-lapse (so, a stack) with a unique transmission image
taken at the first time point (so, a unique image), and get a movie (so,
a stack) of the overlay.
SO I want to use RGB merge or RGB+Gray merge, but First I have to get my
transmission image to a stack the dimension of my time-lapse fluorescent
sequence...
Thank you !