Макрос ApplyDicomRescaleSlope (обращение в DICOM)
|
|
|
|
Автор Команда bioinformatix.ru
|
|
25.04.2009 г. |
|
Этот макрос увеличивает изображение или несколько изображений в формате DICOM Rescale Slope. Изображение или стек конвертируются в 32-битные. Текст макроса: slopes = newArray(nSlices); for (slice=1; slice<=nSlices; slice++) { if (nSlices>1) run("Set Slice...", "slice="+slice); selectImage(getImageID()); tags = getInfo(); if (indexOf(tags, "0008,0060")==-1) exit("This does not seem to be a DICOM image"); //intercept = getValue(tags, "0028,1052"); slopes[slice-1] = getValue(tags, "0028,1053"); } maxSlope = 0; for (i=1; i<=nSlices; i++) { slope = slopes[i-1]; if (slope>maxSlope) maxSlope = slope; print(i+" "+slopes[i-1]); } print("max slope: "+maxSlope); if (maxSlope>1.0) run("32-bit"); // convert to 32-bits for (i=1; i<=nSlices; i++) { if (nSlices>1) run("Set Slice...", "slice="+i); if (slopes[i-1]!=1.0 && slopes[i-1]!=-1) run("Multiply...", "slice value="+slopes[i-1]); } exit;
function getValue(tags, tag) { index1 = indexOf(tags, tag); if (index1==-1) return -1; index1 = indexOf(tags, ":", index1); if (index1==-1) return -1; index2 = indexOf(tags, "\n", index1); value = substring(tags, index1+1, index2); //print("!"+value+"!"); return 0+value; }
|
|
Последнее обновление ( 25.04.2009 г. )
|