mirror of
https://github.com/paulscherrerinstitute/ch.psi.imagej.hdf5.git
synced 2025-06-07 11:00:41 +02:00
added support for reading only every x-th image
This commit is contained in:
parent
93885470e4
commit
4aec3a2858
@ -10,6 +10,8 @@ public class DatasetSelection {
|
|||||||
private List<Dataset> datasets = new ArrayList<Dataset>();
|
private List<Dataset> datasets = new ArrayList<Dataset>();
|
||||||
private boolean group = false;
|
private boolean group = false;
|
||||||
private Integer slice;
|
private Integer slice;
|
||||||
|
// Intervall to read images
|
||||||
|
private Integer modulo;
|
||||||
|
|
||||||
public List<Dataset> getDatasets() {
|
public List<Dataset> getDatasets() {
|
||||||
return datasets;
|
return datasets;
|
||||||
@ -29,4 +31,10 @@ public class DatasetSelection {
|
|||||||
public Integer getSlice() {
|
public Integer getSlice() {
|
||||||
return slice;
|
return slice;
|
||||||
}
|
}
|
||||||
|
public void setModulo(Integer modulo) {
|
||||||
|
this.modulo = modulo;
|
||||||
|
}
|
||||||
|
public Integer getModulo() {
|
||||||
|
return modulo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,20 +10,9 @@ import ij.plugin.PlugIn;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Array;
|
import java.lang.reflect.Array;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
import javax.swing.BoxLayout;
|
|
||||||
import javax.swing.DefaultListCellRenderer;
|
|
||||||
import javax.swing.JCheckBox;
|
|
||||||
import javax.swing.JLabel;
|
|
||||||
import javax.swing.JList;
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.JScrollPane;
|
|
||||||
import javax.swing.ScrollPaneConstants;
|
|
||||||
|
|
||||||
import ncsa.hdf.object.*;
|
import ncsa.hdf.object.*;
|
||||||
import ncsa.hdf.object.h5.*;
|
import ncsa.hdf.object.h5.*;
|
||||||
@ -238,6 +227,29 @@ public class HDF5Reader implements PlugIn {
|
|||||||
// int startIdx = selectedDatasets.getSlice() * size;
|
// int startIdx = selectedDatasets.getSlice() * size;
|
||||||
addSlice(stack, wholeDataset, 0, size);
|
addSlice(stack, wholeDataset, 0, size);
|
||||||
}
|
}
|
||||||
|
else if(selectedDatasets.getModulo()!=null){
|
||||||
|
logger.info("Read every "+selectedDatasets.getModulo()+" image");
|
||||||
|
// Select what to readout
|
||||||
|
|
||||||
|
stack = new ImageStack((int) dimensions[2], (int) dimensions[1]);
|
||||||
|
|
||||||
|
for(int indexToRead=0;indexToRead<dimensions[0]; indexToRead=indexToRead+selectedDatasets.getModulo()){
|
||||||
|
|
||||||
|
long[] selected = var.getSelectedDims();
|
||||||
|
selected[0] = 1;
|
||||||
|
selected[1] = dimensions[1];
|
||||||
|
selected[2] = dimensions[2];
|
||||||
|
|
||||||
|
long[] start = var.getStartDims();
|
||||||
|
start[0] = indexToRead;
|
||||||
|
|
||||||
|
Object wholeDataset = var.read();
|
||||||
|
|
||||||
|
int size = (int) (dimensions[1] * dimensions[2]);
|
||||||
|
// int startIdx = selectedDatasets.getSlice() * size;
|
||||||
|
addSlice(stack, wholeDataset, 0, size);
|
||||||
|
}
|
||||||
|
}
|
||||||
else{
|
else{
|
||||||
// Select what to readout
|
// Select what to readout
|
||||||
long[] selected = var.getSelectedDims();
|
long[] selected = var.getSelectedDims();
|
||||||
@ -322,6 +334,7 @@ public class HDF5Reader implements PlugIn {
|
|||||||
selectedDatasets.setDatasets(panel.getSelectedValues());
|
selectedDatasets.setDatasets(panel.getSelectedValues());
|
||||||
selectedDatasets.setGroup(panel.groupValues());
|
selectedDatasets.setGroup(panel.groupValues());
|
||||||
selectedDatasets.setSlice(panel.getSlice());
|
selectedDatasets.setSlice(panel.getSlice());
|
||||||
|
selectedDatasets.setModulo(panel.getModulo());
|
||||||
}
|
}
|
||||||
|
|
||||||
return selectedDatasets;
|
return selectedDatasets;
|
||||||
|
@ -89,9 +89,17 @@ public class SelectionPanel extends JPanel {
|
|||||||
|
|
||||||
public Integer getSlice(){
|
public Integer getSlice(){
|
||||||
String text = textField.getText();
|
String text = textField.getText();
|
||||||
if(text.matches("[0-9]+")){
|
if(text.matches("^[0-9]+$")){
|
||||||
return new Integer(text);
|
return new Integer(text);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getModulo(){
|
||||||
|
String text = textField.getText();
|
||||||
|
if(text.matches("^%[0-9]+$")){
|
||||||
|
return new Integer(text.replace("%", ""));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user