人脸识别活体检测之张张嘴和眨眨眼——Json_Parsing

 /**  
* @Title: Json_Parsing.java
* @Package org.util
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2018-6-9 上午10:33:48
* @blog https://blog.csdn.net/qq_34137397
* @version V1.0  
*/
package org.util;


import java.util.ArrayList;

import org.entity.Landmark;
import org.json.JSONArray;
import org.json.JSONObject;

 /**   
 *    
 * 项目名称:test_face_huoti   
 * 类名称:Json_Parsing   
 * 类描述:   解析json
 * 创建人:Mu Xiongxiong  
 * 创建时间:2018-6-9 上午10:33:48   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2018-6-9 上午10:33:48   
 * 修改备注:   
 * 个人博客:https://blog.csdn.net/qq_34137397
 * @version    
 *    
 */
public class Json_Parsing {



    /*String json_str = "{"
            +" \"timestamp\": 1528420653,"
            +" \"result\": {"
            +"\"face_list\": [{"
            +"\"landmark\": ["
            +" {"
            +" \"y\": 293.6487427,"
            +" \"x\": 344.6775208"
            +" },"
            +"{"
            +" \"y\": 292.1832581,"
            +" \"x\": 465.147522"
            +"},"
            +"{"
            +"  \"y\": 362.4373169,"
            +"  \"x\": 407.2205811"
            +" },"
            +" {"
            +"  \"y\": 428.7177124,"
            +"  \"x\": 411.6735535"
            +" }"
            +"],"
            +" \"face_probability\": 0.9377777576,"
            +" \"location\": {"
            +"  \"height\": 253,"
            +" \"rotation\": 0,"
            +" \"width\": 243,"
            +" \"left\": 289.150177,"
            +"  \"top\": 244.4544983"
            +"},"
            +"\"landmark72\": ["
            +" {"
            +"  \"y\": 292.0180054,"
            +"\"x\": 289.417572"
            +"},"
            +"{"
            +" \"y\": 331.9599609,"
            +"\"x\": 292.8039246"
            +"  },"
            +"  {"
            +"   \"y\": 372.3904114,"
            +"  \"x\": 301.283844"
            +"},"
            +" {"
            +" \"y\": 411.2714233,"
            +"  \"x\": 314.0955505"
            +" },"
            +" {"
            +" \"y\": 450.2736206,"
            +" \"x\": 338.0390625"
            +" },"
            +" {"
            +"  \"y\": 484.864502,"
            +"  \"x\": 376.0628662"
            +"  },"
            +"{"
            +" \"y\": 496.4431152,"
            +"\"x\": 415.7805176"
            +"},"
            +"{"
            +" \"y\": 487.0181274,"
            +" \"x\": 455.3654175"
            +"},"
            +"{"
            +" \"y\": 454.7385559,"
            +" \"x\": 492.2065735"
            +" },"
            +" {"
            +"  \"y\": 412.9674377,"
            +"  \"x\": 516.8792725"
            +"},"
            +"{"
            +"\"y\": 371.8327026,"
            +"\"x\": 526.5441284"
            +"},"
            +"{"
            +"\"y\": 330.3126831,"
            +" \"x\": 531.1585693"
            +" },"
            +"{"
            +"\"y\": 289.8967896,"
            +"\"x\": 532.8815918"
            +"},"
            +"{"
            +"\"y\": 295.760498,"
            +"\"x\": 318.7453003"
            +"},"
            +"{"
            +" \"y\": 290.3188171,"
            +" \"x\": 331.4337769"
            +" },"
            +"{"
            +"\"y\": 288.857605,"
            +"\"x\": 344.0565186"
            +"},"
            +"{"
            +"\"y\": 289.964447,"
            +"\"x\": 357.3381348"
            +"},"
            +"{"
            +"\"y\": 297.0440674,"
            +"\"x\": 370.2176819"
            +"},"
            +"{"
            +"\"y\": 299.0540771,"
            +"\"x\": 357.6977844"
            +"},"
            +"{"
            +"\"y\": 300.6704102,"
            +"\"x\": 344.3751831"
            +"},"
            +"{"
            +"\"y\": 299.0969849,"
            +" \"x\": 331.1411133"
            +" },"
            +"{"
            +"\"y\": 293.6487427,"
            +"\"x\": 344.6775208"
            +" },"
            +"{"
            +" \"y\": 265.6499634,"
            +" \"x\": 303.0313721"
            +" },"
            +" {"
            +"   \"y\": 245.9210663,"
            +"   \"x\": 320.273468"
            +"  },"
            +" {"
            +"   \"y\": 243.7492371,"
            +"   \"x\": 342.8881226"
            +" },"
            +"{"
            +"   \"y\": 247.8726349,"
            +"\"x\": 365.1636963"
            +"},"
            +"{"
            +" \"y\": 263.4034729,"
            +" \"x\": 384.873291"
            +" },"
            +"{"
            +" \"y\": 264.3016357,"
            +"\"x\": 364.7226562"
            +"},"
            +"{"
            +"  \"y\": 263.662384,"
            +"\"x\": 343.1068115"
            +" },"
            +" {"
            +" \"y\": 264.1619568,"
            +"  \"x\": 321.9691772"
            +"},"
            +" {"
            +" \"y\": 295.9424133,"
            +" \"x\": 440.2758179"
            +"},"
            +"{"
            +"\"y\": 288.9544373,"
            +" \"x\": 453.3082581"
            +" },"
            +"{"
            +" \"y\": 287.5550232,"
            +" \"x\": 466.5764771"
            +" },"
            +" {"
            +" \"y\": 288.9812317,"
            +" \"x\": 480.1110229"
            +"},"
            +"{"
            +"\"y\": 293.90625,"
            +"\"x\": 493.8017883"
            +"},"
            +"{"
            +"\"y\": 298.0003357,"
            +"\"x\": 480.5523987"
            +"},"
            +"{"
            +"\"y\": 299.4595032,"
            +" \"x\": 466.5645752"
            +" },"
            +" {"
            +" \"y\": 298.1081543,"
            +"\"x\": 452.7465515"
            +"},"
            +" {"
            +"\"y\": 292.1832581,"
            +"\"x\": 465.147522"
            +"},"
            +"{"
            +"\"y\": 263.0756226,"
            +"\"x\": 424.7915039"
            +" },"
            +" {"
            +" \"y\": 246.7488251,"
            +" \"x\": 444.5397644"
            +"},"
            +"{"
            +" \"y\": 242.2443085,"
            +" \"x\": 468.00177"
            +" },"
            +"{"
            +" \"y\": 244.3013611,"
            +" \"x\": 492.2993469"
            +" },"
            +"{"
            +" \"y\": 264.5846252,"
            +" \"x\": 512.2473755"
            +" },"
            +"{"
            +"\"y\": 262.5867615,"
            +"\"x\": 490.7645874"
            +"},"
            +"{"
            +"\"y\": 261.9186096,"
            +"\"x\": 468.2220459"
            +" },"
            +"{"
            +"\"y\": 262.9295349,"
            +"\"x\": 446.1036377"
            +"},"
            +"{"
            +" \"y\": 297.6395569,"
            +"\"x\": 387.9335022"
            +" },"
            +"{"
            +"\"y\": 323.2550659,"
            +"\"x\": 383.4273071"
            +"},"
            +"{"
            +" \"y\": 348.6310425,"
            +" \"x\": 378.8557739"
            +"},"
            +"{"
            +"\"y\": 377.025116,"
            +" \"x\": 371.0310364"
            +" },"
            +"{"
            +"\"y\": 378.413269,"
            +" \"x\": 388.319519"
            +"},"
            +" {"
            +"  \"y\": 377.3381958,"
            +"  \"x\": 429.2042236"
            +" },"
            +" {"
            +" \"y\": 374.605896,"
            +"\"x\": 447.5372314"
            +"},"
            +"{"
            +" \"y\": 346.7474365,"
            +"\"x\": 436.0992737"
            +"},"
            +"{"
            +" \"y\": 321.6994629,"
            +" \"x\": 429.4744873"
            +" },"
            +"{"
            +" \"y\": 296.7819824,"
            +" \"x\": 422.7367249"
            +" },"
            +"{"
            +" \"y\": 362.4373169,"
            +" \"x\": 407.2205811"
            +" },"
            +"{"
            +" \"y\": 426.7028503,"
            +" \"x\": 364.6296387"
            +" },"
            +" {"
            +" \"y\": 415.4924927,"
            +"\"x\": 385.1811523"
            +"},"
            +" {"
            +"\"y\": 414.2524414,"
            +"\"x\": 410.7074585"
            +" },"
            +"{"
            +" \"y\": 415.1342468,"
            +" \"x\": 436.9920044"
            +" },"
            +"{"
            +"\"y\": 424.9750366,"
            +"\"x\": 461.309082"
            +"},"
            +"{"
            +" \"y\": 442.3902588,"
            +"\"x\": 440.663147"
            +" },"
            +"{"
            +"\"y\": 449.1212158,"
            +" \"x\": 411.6611328"
            +"},"
            +"{"
            +" \"y\": 442.7553711,"
            +" \"x\": 384.1807556"
            +"},"
            +"{"
            +" \"y\": 426.5587769,"
            +" \"x\": 386.5618896"
            +"},"
            +" {"
            +"\"y\": 427.7996826,"
            +"\"x\": 411.2698364"
            +"},"
            +"{"
            +"\"y\": 425.5678711,"
            +"\"x\": 435.7932434"
            +"},"
            +"{"
            +" \"y\": 429.5809326,"
            +" \"x\": 436.4645996"
            +" },"
            +" {"
            +" \"y\": 431.8244629,"
            +" \"x\": 410.9641724"
            +"},"
            +"{"
            +"\"y\": 429.8924866,"
            +"\"x\": 387.0514832"
            +" }"
            +" ],"
            +"\"face_token\": \"1d3c6176c74239cda6fae09bc703b4b5\","
            +" \"angle\": {"
            +" \"yaw\": 0.8733408451,"
            +"\"roll\": -0.6557160616,"
            +"\"pitch\": 3.743157148"
            +"}"
            +"}],"
            +" \"face_num\": 1"
            +"},"
            +" \"cached\": 0,"
            +"\"error_code\": 0,"
            +" \"log_id\": 3506632814,"
            +"\"error_msg\": \"SUCCESS\""
            +"}";*/
    /**
     * 
    * @Description: 该方法的主要作用:解析人脸检测的json数据 
    * @Title: parsingFaceJson
    * @param  @param json_str
    * @param  @return 设定文件  
    * @return  返回类型:Landmark   
    * @throws
    * 个人博客:https://blog.csdn.net/qq_34137397
     */
    @SuppressWarnings("serial")
    public static Landmark  parsingFaceJson(JSONObject json_str){
        Landmark landmark = new Landmark();
        //开始解析json
        //JSONObject  dataJson=new JSONObject(json_str);
        //找到result节点
        JSONObject  response_result=json_str.getJSONObject("result");
        //继续找face_list节点
        JSONArray face_list_jsonArray=response_result.getJSONArray("face_list");
        JSONObject face_list_jsonObject=face_list_jsonArray.getJSONObject(0);
        //找到landmark(关键点)节点,4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心
        final JSONArray landmark_jsonArray=face_list_jsonObject.getJSONArray("landmark");
        //左眼中心
        landmark.setLeft_eye_zhongxin(new ArrayList<Double>(){
            {add((Double) landmark_jsonArray.getJSONObject(0).get("y")); 
            add((Double) landmark_jsonArray.getJSONObject(0).get("x"));}
            });
        //右眼中心
        landmark.setRight_eye_zhongxin(new ArrayList<Double>(){
            {add((Double) landmark_jsonArray.getJSONObject(1).get("y")); 
            add((Double) landmark_jsonArray.getJSONObject(1).get("x"));}
            });
        //鼻尖
        landmark.setNose_zhongxin(new ArrayList<Double>(){
            {add((Double) landmark_jsonArray.getJSONObject(2).get("y")); 
            add((Double) landmark_jsonArray.getJSONObject(2).get("x"));}
            });
        //嘴中心
        landmark.setMouse_zhongxin(new ArrayList<Double>(){
            {add((Double) landmark_jsonArray.getJSONObject(3).get("y")); 
            add((Double) landmark_jsonArray.getJSONObject(3).get("x"));}
            });
        //继续找landmark72节点
        final JSONArray landmark72_jsonArray=face_list_jsonObject.getJSONArray("landmark72");
        //左眼上边
        landmark.setLeft_eye_top(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(14).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(14).get("x"));}
            });

        //左眼下边
        landmark.setLeft_eye_bottom(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(19).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(19).get("x"));}
            });
        //右眼上边
        landmark.setRight_eye_top(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(32).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(32).get("x"));}
            });
        //右眼下边
        landmark.setRight_eye_bottom(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(36).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(36).get("x"));}
            });
        //嘴巴上边
        landmark.setMouse__top(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(60).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(60).get("x"));}
            });
        //嘴巴下边
        landmark.setMouse__bottom(new ArrayList<Double>(){
            {add((Double) landmark72_jsonArray.getJSONObject(70).get("y")); 
            add((Double) landmark72_jsonArray.getJSONObject(70).get("x"));}
            });
        return landmark;
    }


}
posted @ 2018-06-23 00:02  穆雄雄  阅读(365)  评论(0编辑  收藏  举报