对多张免疫荧光染色图象进行处理时,使用Macro功能可以极大提高处理效率。本文章将演示:
- 批量分离通道并保存各通道图象;
- 批量调整各通道图象的亮度(Brightness)和对比度(Contrast),重新融合(Merge)为新的图象并保存融合后的图象;
- 批量测量各通道的平均荧光强度值。
本文参考了以下教程:
在需要的地方建立input文件夹用于存储输入数据,也就是我们的原始图象;同时建立output文件夹,存储输出的数据。
编程
点击Plugins-Macros-Record,并输入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| inputDir = "E:/医学/免疫荧光/20260430-A2-A4/input/"; outputDir = "E:/医学/免疫荧光/20260430-A2-A4/output/";
fileList = getFileList(inputDir);
run("Set Measurements...", "area mean min integrated area_fraction limit redirect=None decimal=3");
for (i = 0; i < fileList.length; i++) { fileName = fileList[i]; if (endsWith(fileName, ".oir")) { baseName = substring(fileName, 0, lastIndexOf(fileName, ".")); open(fileName); run("Split Channels"); selectImage("C1-" + fileName); run("Duplicate...", " "); selectImage("C2-" + fileName); run("Duplicate...", " "); selectImage("C3-" + fileName); run("Duplicate...", " "); selectImage("C1-" + baseName + "-1.oir"); setMinAndMax(1185, 5145); selectImage("C2-" + baseName + "-1.oir"); setMinAndMax(1347, 2018); selectImage("C3-" + baseName + "-1.oir"); setMinAndMax(1007, 1267); print("已应用记录的参数到文件: " + fileName); run("Merge Channels...", "c1=[C1-" + baseName + "-1.oir] c2=[C2-" + baseName + "-1.oir] c3=[C3-" + baseName + "-1.oir] create keep"); selectImage("C2-" + baseName + "-1.oir"); run("Measure"); selectImage("C3-" + baseName + "-1.oir"); run("Measure"); saveAs("Results", outputDir + baseName + "_Results.csv"); run("Clear Results"); selectImage("C1-" + fileName); run("RGB Color"); saveAs("Tiff", outputDir + "C1_" + baseName + ".tif");
selectImage("C2-" + fileName); run("RGB Color"); saveAs("Tiff", outputDir + "C2_" + baseName + ".tif");
selectImage("C3-" + fileName); run("RGB Color"); saveAs("Tiff", outputDir + "C3_" + baseName + ".tif");
selectImage("C1-" + baseName + "-1.oir"); run("RGB Color"); saveAs("Tiff", outputDir + "C1_" + baseName + "_adjusted.tif"); selectImage("C2-" + baseName + "-1.oir"); run("RGB Color"); saveAs("Tiff", outputDir + "C2_" + baseName + "_adjusted.tif"); selectImage("C3-" + baseName + "-1.oir"); run("RGB Color"); saveAs("Tiff", outputDir + "C3_" + baseName + "_adjusted.tif"); selectImage(baseName + "-1.oir"); run("RGB Color"); saveAs("Tiff", outputDir + baseName + "_Merged_RGB.tif"); run("Close All"); print("已处理: " + fileName + " (" + (i+1) + "/" + fileList.length + ")"); } }
print("批量处理完成!共处理了 " + fileList.length + " 个文件。"); showMessage("处理完成", "共处理了 " + fileList.length + " 个文件。");
|
运行代码
Ctrl+A全选,随后点击Run运行,即可批量处理图片。