Visualization in split view

Hi there,

Is there a plugin to view a time lapse multi channel (RFP and GFP) the same as the Zen Zeiss split view: one box for each channel and one for the overlay; they should be interconnected so when I run the time lapse they all run together.

Thanks a lot,
Guy

Dear @wacguy,

one possibility is to split your sequence into individual channels (Image > Color > Split Channels) and, subsequently, use Analyze > Tools > Synchronize Windows (which is available in Fiji): select the channels you want to sync in the list at the top and activate Sync t-Frames. This approach also works with other images as long as their dimensions are the same.

There might be better options, but this has worked out pretty well for me.

Best,
Stefan

2 Likes

Hi @wacguy,
Its a bit late for you but I have made a macro for myself and i’m happy to share it :
feel free to paste this at the end of your StartupMacro and it should work with the S key
from 2 to 4 channels it creates a big RGB stack image showing separated channels and overlay
(no overlay for 4 channels)
I find it usefull for visualisation and figure making
Hope it will work fine for everyone :wink:
Best,
Kevin

macro "SplitView [S]" {
	setBatchMode(true);
	run("Duplicate...", "duplicate");
	rename("image");
	getDimensions(width, height, channels, slices, frames);
	if (channels == 1) {
		exit("only one channel");
	}
	if ((slices > 1) && (frames == 1)) {
		frames = slices;
		slices = 1;
		Stack.setDimensions(channels, slices, frames);
}
	if (channels == 2) {
		run("Duplicate...", "duplicate");
		run("Split Channels");
		selectWindow("image");
		run("RGB Color", "frames");
		selectWindow("C1-image-1");
		run("RGB Color", "slices");
		selectWindow("C2-image-1");
		run("RGB Color", "slices");
		run("Combine...", "stack1=image stack2=C1-image-1");
		run("Combine...", "stack1=[Combined Stacks] stack2=C2-image-1");
		rename("Splitview");
	}
	
	if (channels == 3) {
		run("Duplicate...", "duplicate");
		run("Split Channels");
		selectWindow("image");
		run("RGB Color", "frames");
		selectWindow("C1-image-1");
		run("RGB Color", "slices");
		selectWindow("C2-image-1");
		run("RGB Color", "slices");
		selectWindow("C3-image-1");
		run("RGB Color", "slices");
		run("Combine...", "stack1=image stack2=C1-image-1");
		rename("Combined1");
		run("Combine...", "stack1=C2-image-1 stack2=C3-image-1");
		rename("Combined2");
		run("Combine...", "stack1=Combined1 stack2=Combined2 combine");
		rename("SplitView");
	}

	if (channels == 4) {
		run("Duplicate...", "duplicate");
		run("Split Channels");
		selectWindow("C1-image-1");
		run("RGB Color", "slices");
		selectWindow("C2-image-1");
		run("RGB Color", "slices");
		selectWindow("C3-image-1");
		run("RGB Color", "slices");
		selectWindow("C4-image-1");
		run("RGB Color", "slices");
		run("Combine...", "stack1=C1-image-1 stack2=C2-image-1");
		rename("Combined1");
		run("Combine...", "stack1=C3-image-1 stack2=C4-image-1");
		rename("Combined2");
		run("Combine...", "stack1=Combined1 stack2=Combined2 combine");
		rename("SplitView");
	}
	setBatchMode("exit and display");
}

I played a bit more to optimise my little script!
Now it works with every kind of multichannel images I tried : single, stacks and time-lapse.
My only problem is that big images get quickly heavy in Splitview… But I’m not sure that there is a way to compress an RGB image without resolution loss…
For normal size images that’s not a problem though.
Hope it helps!
Best,

macro "SplitView [S]" {
	setBatchMode(true);
	getDimensions(width, height, channels, slices, frames);
	title = getTitle();
	if (channels == 1) {
	exit("only one channel");
	}
	run("Duplicate...", "duplicate");
	rename("image");
	if ((slices > 1) && (frames == 1)) {
		frames = slices;
		slices = 1;
		Stack.setDimensions(channels, slices, frames);
	}
	run("Duplicate...", "duplicate");
	run("Split Channels");
	selectWindow("image");
	run("RGB Color", "frames");
	rename("overlay");
	close("image");
	selectWindow("C1-image-1");
	run("RGB Color", "slices");
	selectWindow("C2-image-1");
	run("RGB Color", "slices");	
	if (channels == 2) {
		run("Combine...", "stack1=overlay stack2=C1-image-1");
		run("Combine...", "stack1=[Combined Stacks] stack2=C2-image-1");
	}
	if (channels == 3) {
		selectWindow("C3-image-1");
		run("RGB Color", "slices");
		run("Combine...", "stack1=overlay stack2=C1-image-1");
		rename("Combined1");
		run("Combine...", "stack1=C2-image-1 stack2=C3-image-1");
		rename("Combined2");
		run("Combine...", "stack1=Combined1 stack2=Combined2 combine");
	}
	if (channels == 4) {
		selectWindow("C3-image-1");
		run("RGB Color", "slices");
		selectWindow("C4-image-1");
		run("RGB Color", "slices");
		run("Combine...", "stack1=C1-image-1 stack2=C2-image-1");
		rename("Combined1");
		run("Combine...", "stack1=C3-image-1 stack2=C4-image-1");
		rename("Combined2");
		run("Combine...", "stack1=Combined1 stack2=Combined2 combine");
	}
	close("overlay");
	rename(title + " Splitview");
	setBatchMode("exit and display");
}

K

1 Like