Login  Register

Dynamic Thresholding

Posted by Andrew Vaughan-2 on Jul 02, 2007; 2:42pm
URL: http://imagej.273.s1.nabble.com/Dynamic-Thresholding-tp3698959.html

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.