2016-11-16 8 views
1

У меня есть два набора Tiff с временными данными, соответствующими различным каналам, полученным в эксперименте по микроскопии. Я хотел бы объединить их в один стек с двумя каналами. Оба стека имеют 16-битный оттенок серого.Объедините два одноканальных стека TIFF в один многоканальный стек

Когда я использую:

convert stack1.tiff stack2.tiff stack_merged.tiff 

я один, но каскадный файл с двумя стопками один за другим.

Ссылки на file 1 и file 2.

+0

Не уверен, что ваш срок * "стек" *? Имеет ли «стек» несколько изображений, скажем, красного канала в разное время, а другой «стоп» удерживает, скажем, зеленый канал в одно и то же время? Можете ли вы предоставить образцы? –

+0

Это дает вам то, что вы хотите для первого изображения? 'convert stack1.tiff [0] stack2.tiff [0] -channel RG -combine result.tif' –

+0

@MarkSetchell Да, стек содержит несколько изображений, записанных в одном цветовом канале в разные моменты времени. Я редактировал вопрос, чтобы включить образцы файлов. Предлагаемый код создает 3 канала с одной точкой времени, а это не то, что мне нужно. – mattek

ответ

1

Я думаю, что нужно что-то вроде этого:

#!/bin/bash 

# Get index of last frame in TIFF image 
last=$(convert stack1.tif -print "%[fx:n-1]" null:) 

# Combine all frames 
for i in `seq 0 $last`; do 
    convert stack1.tif[$i] stack2.tif[$i] -combine miff:- 
done | convert miff:- -compress lzw result.tif 
+1

Практически там, за исключением того, что он создает каналы RGB. Есть ли способ ограничить преобразование на 2 канала? convert -channel RG ... все еще производит все 3 канала, причем последний пуст. – mattek

+0

Я немного улучшил свой первоначальный ответ - более гибкий с точки зрения количества изображений в стеке и сжатого выходного файла, но я все еще пытаюсь выяснить, как сделать 2-канальное изображение ... –

+1

Не уверен, что это возможно ... http://www.wizards-toolkit.org/discourse-server/viewtopic.php?t=16843#p62610 –