Dynamic Thresholding

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Dynamic Thresholding

Andrew Vaughan-2
Dear All.

I recently tried to use Gary Chinga's Dynamic Thresholding plugin  
(http://www.gcsca.net/IJ/Dynamic.html) but was met with the following  
error message once I'd got past the stage of setting a kernel size and  
mean/median/min/max method:

java.lang.NoSuchMethodError:  
ij.plugin.filter.RankFilters.rank(Lij/process/ImageProcessor;DI)V
        at DynamicThreshold_1b.run(DynamicThreshold_1b.java:64)
        at  
ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.j
ava:243)
        at  
ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:102)
        at ij.IJ.runUserPlugIn(IJ.java:160)
        at ij.IJ.runPlugIn(IJ.java:124)
        at ij.Executer.runCommand(Executer.java:95)
        at ij.Executer.run(Executer.java:49)
        at java.lang.Thread.run(Thread.java:552)

I tried compiling and running the java code and received the following  
error:

Note: sun.tools.javac.Main has been deprecated.
/Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:64:  
Method rank(ij.process.ByteProcessor, double, int) not found in class  
ij.plugin.filter.RankFilters.
                                rf.rank(bpTemp,radius, MEAN);
                                       ^
/Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:70:  
Method rank(ij.process.ByteProcessor, double, int) not found in class  
ij.plugin.filter.RankFilters.
                                rf.rank(bpTemp,radius, MEDIAN);
                                       ^
/Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:76:  
Method rank(ij.process.ByteProcessor, double, int) not found in class  
ij.plugin.filter.RankFilters.
                                rf.rank(bpTemp,radius, MIN);
                                       ^
/Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:82:  
Method rank(ij.process.ByteProcessor, double, int) not found in class  
ij.plugin.filter.RankFilters.
                                rf.rank(bpTemp,radius, MAX);
                                       ^
4 errors, 1 warning

This looks to me to be a problem with the code; perhaps caused by  
updates to Java or Image J in the three or four years since the plugin  
was updated (I could be wrong, though). Does anyone have a solution or  
workaround for this, as I could really do with an adaptive thresholding  
algorithm and my Java is limited, to say the least.

Thanks.

Yours sincerely,

Andrew Vaughan.
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic Thresholding

Wayne Rasband
This bug, which was introduced in ImageJ 1.38u, is fixed in ImageJ  
1.38w.

-wayne

On Jul 2, 2007, at 9:42 AM, Andrew Vaughan wrote:

> Dear All.
>
> I recently tried to use Gary Chinga's Dynamic Thresholding plugin  
> (http://www.gcsca.net/IJ/Dynamic.html) but was met with the following  
> error message once I'd got past the stage of setting a kernel size and  
> mean/median/min/max method:
>
> java.lang.NoSuchMethodError:  
> ij.plugin.filter.RankFilters.rank(Lij/process/ImageProcessor;DI)V
> at DynamicThreshold_1b.run(DynamicThreshold_1b.java:64)
> at  
> ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.
> java:243)
> at  
> ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:
> 102)
> at ij.IJ.runUserPlugIn(IJ.java:160)
> at ij.IJ.runPlugIn(IJ.java:124)
> at ij.Executer.runCommand(Executer.java:95)
> at ij.Executer.run(Executer.java:49)
> at java.lang.Thread.run(Thread.java:552)
>
> I tried compiling and running the java code and received the following  
> error:
>
> Note: sun.tools.javac.Main has been deprecated.
> /Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:64:  
> Method rank(ij.process.ByteProcessor, double, int) not found in class  
> ij.plugin.filter.RankFilters.
> rf.rank(bpTemp,radius, MEAN);
>       ^
> /Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:70:  
> Method rank(ij.process.ByteProcessor, double, int) not found in class  
> ij.plugin.filter.RankFilters.
> rf.rank(bpTemp,radius, MEDIAN);
>       ^
> /Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:76:  
> Method rank(ij.process.ByteProcessor, double, int) not found in class  
> ij.plugin.filter.RankFilters.
> rf.rank(bpTemp,radius, MIN);
>       ^
> /Users/andrew/Desktop/ImageJ/plugins/DynamicThreshold_1b.java:82:  
> Method rank(ij.process.ByteProcessor, double, int) not found in class  
> ij.plugin.filter.RankFilters.
> rf.rank(bpTemp,radius, MAX);
>       ^
> 4 errors, 1 warning
>
> This looks to me to be a problem with the code; perhaps caused by  
> updates to Java or Image J in the three or four years since the plugin  
> was updated (I could be wrong, though). Does anyone have a solution or  
> workaround for this, as I could really do with an adaptive  
> thresholding algorithm and my Java is limited, to say the least.
>
> Thanks.
>
> Yours sincerely,
>
> Andrew Vaughan.
>