手相其源有西洋、印度和中国三支,中国民间的手相学源远而流长,终成博杂大观。掌纹也会随着时间发生变化。看手相分男左女右,拿男生举例子,35岁之前看左手,35之后看右手(女生相反)。
接口说明可以参考 https://ai.baidu.com/docs#/Body-API/2757b503
基于现有sdk版本进行 实现此接口调用 调用前请自行确认是否已经找梅姐申请了接口权限哦
pom引入百度Java sdk
<!-- https://mvnrepository.com/artifact/com.baidu.aip/java-sdk -->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.11.3</version>
</dependency>
其实就是继承sdk的AipBodyAnalysis
import com.baidu.aip.bodyanalysis.AipBodyAnalysis;
import com.baidu.aip.error.AipError;
import com.baidu.aip.http.AipRequest;
import com.baidu.aip.util.Base64Util;
import com.baidu.aip.util.Util;
import org.json.JSONObject;
import java.io.IOException;
import java.util.HashMap;
public class AipBodyAnalysisInvitation extends AipBodyAnalysis{
//手部关键点识别
static final String HAND_ANALYSIS = "https://aip.baidubce.com/rest/2.0/image-classify/v1/hand_analysis";
public AipBodyAnalysisInvitation(String appId, String apiKey, String secretKey) {
super(appId, apiKey, secretKey);
}
/**
* 手部关键点识别方法
* @param image 手部图片本地路径
* @param options 其他参数
* @return
*/
public JSONObject handAnalysis(String image, HashMap<String, String> options) {
AipRequest request = new AipRequest();
preOperation(request);
try {
byte[] data = Util.readFileByBytes(image);
String base64Content = Base64Util.encode(data);
request.addBody("image", base64Content);
if (options != null) {
request.addBody(options);
}
request.setUri(HAND_ANALYSIS);
postOperation(request);
return requestServer(request);
} catch (IOException e) {
e.printStackTrace();
return AipError.IMAGE_READ_ERROR.toJsonResult();
}
}
}
小帅离而立还有很久。基于百科所说明,那就使用左手图片
小插曲。如果颜色有问题。会导致识别为空。这个要找梅姐反馈一下。
我这用社区兑换的单反相机 对着自己的左手拍了好几张才有一张符合要求识别出来。
import org.json.JSONObject;
import java.util.HashMap;
public class TestBody {
public static void main(String[] args) throws Exception{
//自己应用的appid apikey secretkey
AipBodyAnalysisInvitation body = new AipBodyAnalysisInvitation("","","");
//本地图片路径
String path = "/Users/xiaoshuai/Downloads/DSC00286.JPG";
HashMap<String,String> options = new HashMap<String,String>();
JSONObject object = body.handAnalysis(path,options);
//输出接口识别内容
System.out.println("object = " + object);
}
}
21个骨节点坐标信息 过多 就不格式化显示了
{"log_id":88272290779127183,"hand_info":[{"hand_parts":{"11":{"score":0.8971255421638489,"x":491,"y":536},"12":{"score":0.8390465974807739,"x":491,"y":440},"13":{"score":0.7221894264221191,"x":588,"y":845},"14":{"score":0.8876256346702576,"x":588,"y":710},"15":{"score":0.8863898515701294,"x":588,"y":594},"16":{"score":0.8520171642303467,"x":549,"y":498},"17":{"score":0.7608776092529297,"x":684,"y":923},"18":{"score":0.8419321775436401,"x":665,"y":826},"19":{"score":0.8592996597290039,"x":665,"y":749},"0":{"score":0.7820904850959778,"x":472,"y":1444},"1":{"score":0.6027116775512695,"x":317,"y":1251},"2":{"score":0.6802216172218323,"x":240,"y":1096},"3":{"score":0.8013773560523987,"x":259,"y":942},"4":{"score":0.8201335668563843,"x":298,"y":807},"5":{"score":0.7507212162017822,"x":395,"y":845},"6":{"score":0.8637937307357788,"x":395,"y":691},"7":{"score":0.8144635558128357,"x":414,"y":594},"8":{"score":0.8497185111045837,"x":414,"y":498},"9":{"score":0.7746249437332153,"x":491,"y":826},"20":{"score":0.9296111464500427,"x":665,"y":652},"10":{"score":0.8292614221572876,"x":491,"y":671}},"location":{"score":0.9971377849578857,"top":408,"left":182,"width":584,"height":1029}}],"hand_num":1}
返回的数据如下。从心理自我认为看出。还是很符合小帅的性格的哈。
{
"plam":{
"title":"手相分析",
"tag":"木形手",
"intro":"手相有阴阳男女之分,大小之别,手形之论,金木水火土是手形的基本分法。手形代表着人的吉凶富贵。",
"dec":[
"你的手形为木形手,木形手属于感性,唯美主义,有创造能力的手形。 具此手型的人,智慧颇高,好学深思,冷静善于分析事理,有独立思想,忍耐力特强,受得起沉重打击,不会稍遇挫败便心灰意冷,善于组织,为人慷慨大方,对金钱绝不吝啬,但会留意琐事,这类手型者多为懮思伤脾,甚则肺肾受累。"
]
},
"score":{
"title":"手相分数分析",
"score":91,
"level":"非常好"
}
}
手相详细分析仅作于本帖。娱乐而已。不提供具体接口地址。请知悉