首页 > 解决方案 > 如何执行批处理以合并通道

问题描述

我有两个单独的文件夹,其中包含相同数量的显微镜图像(每个文件夹中有 134 个图像)。这是针对特定细胞的两种不同染料。我想要做的是将一个文件夹中的每个图像与另一个文件夹中的相应图像合并,即文件夹a的第一个图像与文件夹b的第一个图像等等。我一直在尝试做这项工作,但由于每个图像都有不同的名称,我无法通过批处理成功完成这项工作。任何人都可以帮忙吗?思卡斯

我需要通过在设置中使用 ImageJ --> Image --> Color --> Merge channels Using C1 (red) and C3 (blue) 合并左侧两个图像的通道以获得右侧图像。[1]:https ://i.stack.imgur.com/OUKkg.jpg

标签: batch-fileimage-processingbatch-processingimagejimagej-macro

解决方案


由于您没有对我使用ImageMagick的建议提出任何异议,我将向您展示如何使用它。

由于您没有提供任何图像,假设您有两个名为的目录A,其中包含要用作红色通道的BPNG 文件和要用作蓝色通道的文件。我假设您想要一个零/空白绿色通道。APNGB

./A/image1.png
./A/image2.png
./B/image1.png
./B/image2.png

现在,进入A一个文件的基本命令是:

cd A
magick image1.png ( +clone -fx 0 ) ../B/image1.png -combine result.png

这就是说... “加载image1.png,复制它并用零填充副本,加载../B/image1.png并组合它们,假设第一个是红色,第二个是绿色,第三个是蓝色,并将它们保存为result.png

希望你能得到它的工作。如果它符合您的要求,我们可以处理批处理版本。我不使用 Windows,所以我会在 Linux 上写这个:

#!/bin/bash

for f in *png ; do
   echo "Combining $f (as Red), zero (as Green) and ../B/$f (as Blue) to make res-$f"
   magick $f \( +clone -fx 0 \) ../B/$f -combine res-$f
done

我知道少量的 Windows BATCH 脚本很危险,所以我会尽力猜测它的外观。另存为GO.BAT

FOR %%G IN (*.png) DO (
ECHO %%G
magick %%G ( +clone -fx 0 ) ../B/%%G -combine res-%%G
)

如果我将您的“图像”加载到 Photoshop 中并剪下显着部分并从第二张图像上修剪 112 像素以使其与第一张图像大小相同,然后颠倒顺序并使用建议的命令将它们组合起来,我得到:

在此处输入图像描述


推荐阅读