人脸检测
该部分接收一张图像, 通过对图像分析给出图像中人脸位置:[x,y,w,h],x、y为人脸矩形框左上角坐标,w、h为矩形框长和宽。 请求服务器需要进行两个重要步骤:
如果用一个矩形框将人脸框选住,则矩形框左上角坐标为(5,5),矩形框长宽为103,103
样例代码
- 添加网络请求库依赖
implementation 'com.ejlchina:okhttps:3.1.3'
- 添加使用http的权限(为了防止高版本Android不能使用http请求):
android:usesCleartextTraffic="true"
- 进行请求
服务器端接受base64图像数据,通过POST请求URL:http://119.29.153.34:5000/rectsDetect 返回结果在responseListener中
public class MainActivity_attribute_server extends AppCompatActivity {
ImagePreProcess ipp=new ImagePreProcess();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_attribute_server);
try {
Bitmap bm = BitmapFactory.decodeStream(getAssets().open("g.jpg"));
String base64str=ipp.bitmapToBase64(bm);
HTTP http = HTTP.builder()
.baseUrl("http://119.29.153.34:5000/")
.responseListener((HttpTask<?> task, HttpResult result) -> {
HttpResult.Body body=result.getBody();
String resp =body.toString();
return true;
})
.build();
http.async("/rectsDetect")
.setBodyPara(base64str)
.post();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|