strange copy behaviour in macro language....

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

strange copy behaviour in macro language....

Mario Faretta
Dear all,
I am writing a macro to create orthogonal views from RGB images and navigate
through them. However when I try to use the copy command in the last part of
the code (alt-click on the colored view should a create an updated view
according to the selected position) the macro fails: when I use copy command
it only paste the last copied image without updating the internal clipboard
and when I tried to bypass the problem by using the combined stacks plugin the
code create only a composite view of the axial slice?
Has anyone experienced similar problems?
I pasted the code below if someone is interested
Thanks a lot
Mario

rename("source");
width=getWidth();
height=getHeight();
depth=nSlices();
run("Smooth", "stack");
shuffdepth=depth/3;
run("Hypervolume Shuffler", "select=[split (xytz->xyz/xyz/...)]
depth="+shuffdepth);
//selectWindow("source");
//close();
run("RGB Merge...", "red=v[2]source green=v[1]source blue=v[0]source");
rename("xy");
getPixelSize(unit, pw, ph, pd);
print(pw+" "+ph+" "+pd);

run("Reslice [/]...", "input="+pd+" output="+pw+" start=Top");
rename("xz");
zheight=getHeight();

selectWindow("xy");
run("Reslice [/]...", "input="+pd+" output="+pw+" start=Left rotate");
rename("yz");

newwidth=width+zheight;
newheight=height+zheight;
newImage("Stack", "RGB White", newwidth, newheight, 1);
idpanel=getImageID();
selectWindow("xy");
run("Select All");
run("Copy");
selectWindow("Stack");
makeRectangle(0,0,width,height);
run("Paste");
selectWindow("yz");
run("Select All");
run("Copy");
selectWindow("Stack");
shiftx=width;
shifty=height;
makeRectangle(shiftx,0,zheight,height);
run("Paste");
selectWindow("xz");
run("Select All");
run("Copy");
selectWindow("Stack");
makeRectangle(0,shifty,width,zheight);
run("Paste");
x2=-1; y2=-1; z2=-1;
x1=-1; y1=-1; z1=-1;
alt=8;
leftButton=16;
while(isActive(idpanel)) {
getCursorLoc(x1, y1, z1, flags);
while (flags&alt==0 )  {
    getCursorLoc(x1, y1, z1, flags);
//    wait(10);
}
if ((x1!=x2 || y1!=y2 || z1!=z2)){
if (flags&leftButton!=0){
if (x1<shiftx){
selectWindow("yz");
setSlice(x1);
run("Duplicate...", "title=sagittal");
selectWindow("xy");
run("Duplicate...", "title=axial");
selectWindow("xz");
run("Duplicate...", "title=coronal");
print(x1);
if (y1<shifty){
}
run("Stack Combiner", "stack=axial stack=sagittal");
rename("up");
run("Stack Combiner", "stack=up stack=coronal combine");
}

}
x2=x1;
y2=y1;
z2=z1;
wait(10);
selectWindow("Stack");
}
}

--
Mario Faretta
Imaging Centre
IFOM-IEO Consortium for Oncogenomics
European Institute of Oncology
via Ripamonti 435
20141 Milan
Italy
Phone: ++390257489880/ ++3902574303225
Fax: ++390257489851
email: [hidden email]
http://imaging.altervista.org
http://www.ifom-ieo-campus.it
[--------------------------
Il Tuo 5 per Mille a favore della Ricerca dello IEO Istituto Europeo di
Oncologia

La legge finanziaria per il 2006 ha stabilito che con la prossima
dichiarazione dei redditi potrai aiutare la ricerca destinando il 5 per mille
dell'imposta sul reddito delle persone fisiche.

Tutti coloro che presentano il modello Unico, il modello 730 o piu'
semplicemente che ricevono dal proprio datore di lavoro il modello CUD, hanno
la facolta' di scegliere la destinazione del proprio 5 per mille. Lo IEO
Istituto Europeo di Oncologia di Milano e' uno degli enti a cui e' possibile
destinare il Tuo 5 per mille, apponendo la propria firma e il codice fiscale
dello IEO (08691440153) nella casella riservata al Finanziamento della Ricerca
Sanitaria che si trova sui modelli Unico, 730 e CUD.

- NON COSTA NULLA E NON COMPORTA ALCUN AUMENTO DELLE IMPOSTE DA VERSARE
- NON E' UN'ALTERNATIVA ALL'8 PER MILLE
- E' UN GESTO CONCRETO E DI GRANDE VALORE

Sostieni la ricerca contro il cancro, sostieni la ricerca dello IEO Istituto
Europeo di Oncologia
Per saperne di piu' vai al sito dello IEO www.ieo.it oppure scrivi a
[hidden email]

Segnala ad un amico questa opportunita'.

 -]