Как выполнить пакетную обработку для объединения каналов - PullRequest
0 голосов
/ 05 августа 2020

У меня две отдельные папки с одинаковым количеством изображений с микроскопии (по 134 изображения в каждой папке). Это два разных красителя для определенных c клеток. Я хочу объединить каждое изображение из одной папки с соответствующим изображением из другой папки, то есть первое изображение папки a с первым изображением папки b и так далее. Я пытался выполнить эту работу, но поскольку каждое изображение имеет другое имя, я не могу успешно завершить sh это задание с помощью пакетной обработки. Кто-нибудь может помочь? Thnkas

Мне нужно объединить каналы из двух изображений слева, чтобы получить изображение справа, используя ImageJ -> Image -> Color -> Объединить каналы, используя C1 (красный) и C3 ( синий) в настройках. [1]: https://i.stack.imgur.com/OUKkg.jpg

1 Ответ

1 голос
/ 06 августа 2020

Поскольку вы не возражали против моего предложения использовать ImageMagick , я покажу вам, как это сделать с помощью этого.

Поскольку вы не предоставили никаких изображений, Предположим, у вас есть два каталога с именами A и B с файлами PNG в A, которые вы хотите использовать в качестве красного канала, и PNG файлами в B, которые вы хотите использовать в качестве синего канала. Я предполагаю, что вам нужен нулевой / пустой зеленый канал.

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

Теперь go в A и команда basi c для одного файла:

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 пикселей второго изображения, чтобы сделать его того же размера, что и первый, а затем измените порядок и объедините их, используя предложенные команды, я получаю:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...