Skip to content

Commit 9d2a1a6

Browse files
committed
Unbend jrc_mus_heart_6 16-bit stack. Reduced logging to help debug issues. To avoid exception, I needed to select points (with ctrl-A) from top to bottom in N5 viewer. Left RenderTools hack code commented out.
1 parent 293ff2e commit 9d2a1a6

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

render-ws-java-client/src/main/java/org/janelia/render/client/solver/interactive/Unbend.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import java.awt.Color;
44
import java.io.IOException;
55
import java.util.ArrayList;
6+
import java.util.Arrays;
67
import java.util.HashMap;
78
import java.util.List;
89
import java.util.Set;
910
import java.util.function.Function;
1011
import java.util.stream.Collectors;
1112

13+
import org.janelia.alignment.RenderParameters;
14+
import org.janelia.alignment.mipmap.RenderedCanvasMipmapSource;
15+
import org.janelia.alignment.mipmap.UrlMipmapSource;
1216
import org.janelia.alignment.spec.ResolvedTileSpecCollection;
1317
import org.janelia.alignment.spec.ResolvedTileSpecCollection.TransformApplicationMethod;
1418
import org.janelia.alignment.spec.TileSpec;
@@ -19,8 +23,11 @@
1923
import org.janelia.render.client.RenderDataClient;
2024
import org.janelia.render.client.solver.SolveTools;
2125
import org.janelia.render.client.solver.visualize.RenderTools;
26+
import org.slf4j.LoggerFactory;
2227

2328
import bdv.util.BdvStackSource;
29+
import ch.qos.logback.classic.Level;
30+
import ch.qos.logback.classic.LoggerContext;
2431
import net.imglib2.Interval;
2532
import net.imglib2.RealPoint;
2633
import net.imglib2.cache.Invalidate;
@@ -193,14 +200,15 @@ public static void main(final String[] args) throws IOException
193200
effectiveArgs = new String[] {
194201
"http://em-services-1.int.janelia.org:8080/render-ws/v1",
195202
"cellmap",
196-
"jrc_mus_cortex_2",
197-
"v1_acquire_align",
198-
"v1_acquire_align_straightened"
203+
"jrc_mus_heart_6",
204+
"v4_acquire_align_16bit_destreak_sc",
205+
"v4_acquire_align_16bit_destreak_sc_straightened"
199206
};
200207
} else {
201208
effectiveArgs = args;
202209
}
203210

211+
// note: needed to hack RenderTools.renderImage to handle 16-bit data (see commented out lines there)
204212
final String baseUrl = effectiveArgs[0];
205213
final String owner = effectiveArgs[1];
206214
final String project = effectiveArgs[2];
@@ -226,6 +234,19 @@ public static void main(final String[] args) throws IOException
226234
final long cachedPixels = 2000000;
227235
final ImageProcessorCache ipCache = new ImageProcessorCache( cachedPixels, recordStats, cacheOriginalsForDownSampledImages );
228236

237+
// reduce logging so that it is easier to see problems
238+
for (final String loggerName : Arrays.asList(ImageProcessorCache.class.getName(),
239+
RenderParameters.class.getName(),
240+
RenderedCanvasMipmapSource.class.getName(),
241+
UrlMipmapSource.class.getName())) {
242+
final LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
243+
final ch.qos.logback.classic.Logger logger = loggerContext.getLogger(loggerName);
244+
if (logger == null) {
245+
throw new IllegalArgumentException("logger with name '" + loggerName + "' not found");
246+
}
247+
logger.setLevel(Level.WARN);
248+
}
249+
229250
// make most cores available for viewer
230251
final double totalThreadUsage = 1.0;
231252
final int numTotalThreads = (int) Math.floor(Runtime.getRuntime().availableProcessors() * totalThreadUsage);

render-ws-java-client/src/main/java/org/janelia/render/client/solver/visualize/RenderTools.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ static public ImageProcessorWithMasks renderImage(
170170
final RenderParameters renderParameters = RenderParameters.loadFromUrl(renderParametersUrlString); // we do have that info locally
171171
renderParameters.setDoFilter(filter);
172172

173+
// replace first channel with mask for 16-bit-data
174+
// renderParameters.getTileSpecs().forEach( (tileSpec) -> tileSpec.replaceFirstChannelImageWithMask( false ));
175+
173176
/*
174177
final BufferedImage image = renderParameters.openTargetImage(); // opens an empty buffer
175178
ArgbRenderer.render(renderParameters, image, ipCache); // loads the entire image and crops the requested size
@@ -178,7 +181,8 @@ static public ImageProcessorWithMasks renderImage(
178181
*/
179182

180183
return Renderer.renderImageProcessorWithMasks( renderParameters, ipCache );
181-
}
184+
// return Renderer.renderImageProcessorWithMasks( renderParameters, ImageProcessorCache.DISABLED_CACHE ); // for running without cache for 16-bit data
185+
}
182186

183187
public static ImageProcessorWithMasks renderRemoteImage(final ImageProcessorCache ipCache,
184188
final String baseUrl,

0 commit comments

Comments
 (0)