2014-02-24 87 views
0

經過許多小時,我訪問了大量網站和教程,我需要將一個徑向多項式函數應用於循環roi。計算imagej宏中其他位置的每個圖像的多項式參數。在imagej宏中傳遞的參數

我已經嘗試過程>數學>宏和Ditmer的插件「Expression」,但我無法獲得正確的語法來傳遞變量。顯然,儘管使用了&甚至完全級聯,但我並沒有發現有關傳遞參數的信息。特別是,我無法找到在宏模式下使用表達式來獲取其參數語法的示例。

下面是代碼的示例,單個打開的圖像上運行:

run("32-bit"); 
rename("working"); 
//setTool("oval"); 
makeOval(30, 37, 444, 444); 
p0=1.31061  
p1=-0.0023456; 
p2=-0.000017459; 
selectWindow("working"); 
//run("Macro...", "code=v=v*(1.31061-0.0023456*d-0.00001745*pow(d,2))"); 
//run("Macro...", "code=v=v*(&p0+&p1*d+&p2*pow(d,2))"); 
//run("Expression ", "preset='Radial_cutdown'"); 
//run("Expression ", "preset='Radial_cutdown_parampass'"); 

第一運行命令的工作。第二個不是。

第三個使用Ditmer的表達與預設的插件代碼如下:

i*(1.31061-0.0023456*d-0.00001745*d*d) 
0 
0 
0 
maxval 
0 
0 
0 
w 
h 
0 
100 

這也適用。但是包含宏參數,而不是數量預設不:

Radial_cutdown_parampass 
i*(&p0+&p1*d+&p2*d*d) 
0 
0 
0 
maxval 
0 
0 
0 
w 
h 
0 
100 

我詢問什麼應該是一個簡單的問題道歉,但我承認我被難住了。

+1

如果你已經花了幾個小時尋找,我相信你也遇到了[ImageJ的郵件列表(http://imagej.nih.gov/ij/ list.html),這通常是最好的地方要問,也要報告錯誤(因爲如果某些東西不能像你期望的那樣工作,那也可能是一個錯誤..)。 –

回答

1

使用String concatenation語法:

run("Macro...", "code=v=v*(" + p0 + "+" + p1 + "*d+" + p2 + "*pow(d,2))");