Can't adjust threshold, please help!

Hello, I have an issue with thresholding. When I try to adjust the threshold of an image, no panel comes up to allow me to adjust the threshold.

Hi @dbfon2

Could you provide more details? Which system are you using and which Fiji version?

If I use “Image”>“Adjust”>“Threshold…” the window pops up.

I am working on Ubuntu 16.04 with ImageJ 1.51n.

1 Like

Hi tibuch
I’m using windows 10 and am using v1.51q. I’ve also been doing “Image”>“Adjust”>“Threshold…” and I’ve also tried “ctrl+shift+t” but all that happens is that the panel to adjust the threshold is unaccessible. If I hover over the fiji icon in my taskbar I can see that there is a threshold panel, but it’s completely blank. If I try to click it nothing happens.

1 Like

Could you report the log file?

You can look at the log if you go to “Edit”>“Options”>“Misc…” and select “Debug Mode”.

1 Like

Sounds like a hang, maybe? Does the rest of the program keep working? Maybe this troubleshooting entry helps. If you resize the Threshold panel, does it paint correctly?

1 Like

Pretty much everything else works except for thresholding. I can’t resize the threshold panel since I can’t even click it unfortunately.

this is what comes up if I snapchot after the hang. I’m not sure if this helps.

"AWT-EventQueue-0" prio=6 id=15 group=main
   java.lang.Thread.State: WAITING
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
	at java.awt.EventQueue.getNextEvent(EventQueue.java:554)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:170)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

"AWT-Shutdown" prio=5 id=12 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
	at java.lang.Thread.run(Thread.java:745)

"AWT-Windows" daemon prio=6 id=13 group=system
   java.lang.Thread.State: RUNNABLE
	at sun.awt.windows.WToolkit.eventLoop(Native Method)
	at sun.awt.windows.WToolkit.run(WToolkit.java:306)
	at java.lang.Thread.run(Thread.java:745)

"Attach Listener" daemon prio=5 id=6 group=system
   java.lang.Thread.State: RUNNABLE

"DestroyJavaVM" prio=5 id=26 group=main
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 id=3 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"GC Daemon" daemon prio=2 id=23 group=system
   java.lang.Thread.State: TIMED_WAITING
	at java.lang.Object.wait(Native Method)
	at sun.misc.GC$Daemon.run(GC.java:117)

"Java2D Disposer" daemon prio=10 id=11 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at sun.java2d.Disposer.run(Disposer.java:148)
	at java.lang.Thread.run(Thread.java:745)

"RMI Reaper" prio=5 id=22 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
	at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
	at java.lang.Thread.run(Thread.java:745)

"RMI TCP Accept-0" daemon prio=5 id=21 group=system
   java.lang.Thread.State: RUNNABLE
	at java.net.DualStackPlainSocketImpl.accept0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
	at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
	at java.net.ServerSocket.implAccept(ServerSocket.java:545)
	at java.net.ServerSocket.accept(ServerSocket.java:513)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
	at java.lang.Thread.run(Thread.java:745)

"Reference Handler" daemon prio=10 id=2 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)

"SciJava-2babf189-Thread-0" prio=5 id=17 group=main
   java.lang.Thread.State: TIMED_WAITING
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

"SciJava-2babf189-Thread-1" prio=5 id=18 group=main
   java.lang.Thread.State: RUNNABLE
	at java.lang.Thread.dumpThreads(Native Method)
	at java.lang.Thread.getAllStackTraces(Thread.java:1603)
	at org.scijava.plugins.commands.debug.DumpStack.run(DumpStack.java:81)
	at org.scijava.command.CommandModule.run(CommandModule.java:198)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:167)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:126)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:65)
	at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:237)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

"Signal Dispatcher" daemon prio=9 id=5 group=system
   java.lang.Thread.State: RUNNABLE

"ThresholdAdjuster" prio=4 id=28 group=main
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:502)
	at ij.plugin.frame.ThresholdAdjuster.run(ThresholdAdjuster.java:712)
	at java.lang.Thread.run(Thread.java:745)

When I try to threshold then look at the log, all I that comes up is “setKeyUp: -1”

Hi,

@oburri and I encountered a similar issue in the past but I’m not sure if it’s related.
Can you see a window “Threshold” when you left-clic on the FIJI icon in the window task bar ?

(Having two screens on the same computer and removing one (for maintenance) we couldn’t have access to the Threshold interface)

Solution we came up with :
1- left-clic on FIJI icon on the task bar.
2- right-clic on the window “Threshold”, select Move
BUT very important do not move your mouse,
3- use arrow key on your keyboard left or right to bring back the GUI.

Good luck,

Romain

2 Likes

Oh wow that worked perfectly, thanks so much!