超簡單!Imagej+python+Macros自動(dòng)化批量合并熒光通道,詳細(xì)代碼
在Fiji中點(diǎn)擊File-New-Script,點(diǎn)擊Language選擇編程語言Python
在文本編輯框中根據(jù)自己文件的命名特征修改以下代碼:
(注意文本編輯框里的空格和tab不能混用,報(bào)錯(cuò)實(shí)在找不出來,用Chatgpt3.5就可以修改好,超簡單?。?/span>
from ij import IJ
import os
folder1 = "D:\\20230804\\scan.2023-08-04-12-08-18"?
for subfolder in [ 'B03', 'B04', 'C03', 'C04']:#培養(yǎng)板上不同的孔
? ??
? ? # 創(chuàng)建一個(gè)名為 'out' 的文件夾
? ? os.mkdir(os.path.join(folder1, subfolder, 'out'))
? ? folder = os.path.join(folder1, subfolder)
? ??
? ? for i in range(865):#每個(gè)位置拍了865張照片,但編號從0開始
? ? ? ? if i < 10:
? ? ? ? ? ? for f in ['0', '1', '2']:#每個(gè)孔拍了3個(gè)位置
? ? ? ? ? ? ? ? for a in ['0', '1', '2', '4']:#每個(gè)位置拍了4個(gè)通道的照片
? ? ? ? ? ? ? ? ? ? img_path = os.path.join(folder, "scan_Plate_D_p0%d_0_%sf0%sd%s.TIF" % (i, subfolder, f, a))
? ? ? ? ? ? ? ? ? ? IJ.open(img_path)
? ? ? ? ? ? ? ? ? ? print(a)
? ? ? ? ? ? ? ? ? ? print(i)
? ? ? ? ? ? ? ? ? ? print(img_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 合并通道并保存
? ? ? ? ? ? ? ? IJ.run("Merge Channels...", "c1=[scan_Plate_D_p0%d_0_%sf0%sd2.TIF] c2=[scan_Plate_D_p0%d_0_%sf0%sd1.TIF] c3=[scan_Plate_D_p0%d_0_%sf0%sd0.TIF] c4=[scan_Plate_D_p0%d_0_%sf0%sd4.TIF] create keep" % (i, subfolder, f, i, subfolder, f, i, subfolder, f, i, subfolder, f))
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 構(gòu)建保存路徑
? ? ? ? ? ? ? ? save_path = os.path.join(folder, 'out', str(i) + str(f) + subfolder + "_Composite.png")
? ? ? ? ? ? ? ? IJ.saveAs("PNG", save_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? IJ.run("Close All")
? ? ? ? else:
? ? ? ? ? ? for f in ['0', '1', '2']:
? ? ? ? ? ? ? ? for a in ['0', '1', '2', '4']:
? ? ? ? ? ? ? ? ? ? img_path = os.path.join(folder, 'scan_Plate_D_p' + str(i) + '_0_' + subfolder + 'f0' + f + 'd' + a + '.TIF')
? ? ? ? ? ? ? ? ? ? IJ.open(img_path)
? ? ? ? ? ? ? ? ? ? print(i)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 合并通道并保存
? ? ? ? ? ? ? ? IJ.run("Merge Channels...", "c1=[scan_Plate_D_p%d_0_%sf0%sd2.TIF] c2=[scan_Plate_D_p%d_0_%sf0%sd1.TIF] c3=[scan_Plate_D_p%d_0_%sf0%sd0.TIF] c4=[scan_Plate_D_p%d_0_%sf0%sd4.TIF] create keep" % (i, subfolder, f, i, subfolder, f, i, subfolder, f, i, subfolder, f))
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 構(gòu)建保存路徑
? ? ? ? ? ? ? ? save_path = os.path.join(folder, 'out', str(i) + str(f) + subfolder + "_Composite.png")
? ? ? ? ? ? ? ? IJ.saveAs("PNG", save_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? IJ.run("Close All")
for subfolder in ['C02']:
? ??
? ? # 創(chuàng)建一個(gè)名為 'out' 的文件夾
? ? os.mkdir(os.path.join(folder1, subfolder, 'out'))
? ? folder = os.path.join(folder1, subfolder)
? ??
? ? for i in range(865):
? ? ? ? if i < 10:
? ? ? ? ? ? for f in ['0', '1', '2', '3']:
? ? ? ? ? ? ? ? for a in ['0', '1', '2', '4']:
? ? ? ? ? ? ? ? ? ? img_path = os.path.join(folder, "scan_Plate_D_p0%d_0_%sf0%sd%s.TIF" % (i, subfolder, f, a))
? ? ? ? ? ? ? ? ? ? IJ.open(img_path)
? ? ? ? ? ? ? ? ? ? print(a)
? ? ? ? ? ? ? ? ? ? print(i)
? ? ? ? ? ? ? ? ? ? print(img_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 合并通道并保存
? ? ? ? ? ? ? ? IJ.run("Merge Channels...", "c1=[scan_Plate_D_p0%d_0_%sf0%sd2.TIF] c2=[scan_Plate_D_p0%d_0_%sf0%sd1.TIF] c3=[scan_Plate_D_p0%d_0_%sf0%sd0.TIF] c4=[scan_Plate_D_p0%d_0_%sf0%sd4.TIF] create keep" % (i, subfolder, f, i, subfolder, f, i, subfolder, f, i, subfolder, f))
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 構(gòu)建保存路徑
? ? ? ? ? ? ? ? save_path = os.path.join(folder, 'out', str(i) + str(f) + subfolder + "_Composite.png")
? ? ? ? ? ? ? ? IJ.saveAs("PNG", save_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? IJ.run("Close All")
? ? ? ? else:
? ? ? ? ? ? for f in ['0', '1', '2']:
? ? ? ? ? ? ? ? for a in ['0', '1', '2', '4']:
? ? ? ? ? ? ? ? ? ? img_path = os.path.join(folder, 'scan_Plate_D_p' + str(i) + '_0_' + subfolder + 'f0' + f + 'd' + a + '.TIF')
? ? ? ? ? ? ? ? ? ? IJ.open(img_path)
? ? ? ? ? ? ? ? ? ? print(i)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 合并通道并保存
? ? ? ? ? ? ? ? IJ.run("Merge Channels...", "c1=[scan_Plate_D_p%d_0_%sf0%sd2.TIF] c2=[scan_Plate_D_p%d_0_%sf0%sd1.TIF] c3=[scan_Plate_D_p%d_0_%sf0%sd0.TIF] c4=[scan_Plate_D_p%d_0_%sf0%sd4.TIF] create keep" % (i, subfolder, f, i, subfolder, f, i, subfolder, f, i, subfolder, f))
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? # 構(gòu)建保存路徑
? ? ? ? ? ? ? ? save_path = os.path.join(folder, 'out', str(i) + str(f) + subfolder + "_Composite.png")
? ? ? ? ? ? ? ? IJ.saveAs("PNG", save_path)
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? IJ.run("Close All")
祝大家科研順利!