1.开课作业2.结对作业13.结对作业24.结对作业35.结对作业46.结对作业57.结对作业68.结对作业79.结对作业810.结对作业911.结对作业1012.第一阶段冲刺个人分工13.第一阶段冲刺114.第一阶段冲刺215.第一阶段冲刺316.第一阶段冲刺417.第一阶段冲刺518.第一阶段冲刺619.第一阶段冲刺720.第一阶段冲刺821.第一阶段冲刺922.第一阶段冲刺1023.人月神话读后感0124.人月神话读后感0225.人月神话读后感0326.梦断代码读后感0227.梦断代码读后感0128.每日总结3729.每日总结3830.第一阶段自我总结 贡献度最少原因和下阶段目标31.构建之法读后感0232.构建之法读后感0333.梦断代码读后感0334.构建之法读后感0135.每日总结3936.每日总结4037.每日总结4138.每日总结5339.每日总结5440.每日总结5541.每日总结5642.每日总结5743.每日总结5844.每日总结6045.每日总结6146.每日总结64(事后诸葛亮会议)47.每日总结63(关于课程个人总结)48.第二阶段冲刺149.第二阶段冲刺250.第二阶段冲刺351.第二阶段冲刺4
52.第二阶段冲刺5
53.第二阶段冲刺654.第二阶段冲刺755.第二阶段冲刺856.第二阶段冲刺957.第二阶段冲刺10发布任务,和跌倒检测,处理上传图片的接口
在网页上获取obs的虚拟摄像头进行跌倒检测的功能
package com.example.teamapplication.controller; import com.aliyun.com.viapi.FileUtils; import com.aliyun.facebody20191230.models.RecognizeActionResponse; import com.aliyun.facebody20191230.models.RecognizeActionResponseBody; import com.aliyun.tea.TeaModel; import com.example.teamapplication.common.Result; import com.example.teamapplication.entity.Task; import com.example.teamapplication.mapper.TaskMapper; import com.example.teamapplication.service.TaskService; import com.github.pagehelper.PageHelper; import jakarta.annotation.Resource; import com.github.pagehelper.PageInfo; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Base64; import java.util.List; /** * <p> * 前端控制器 * </p> * * @author xu * @since 2024-05-04 */ @RestController @RequestMapping("/task") public class TaskController { @Resource private TaskService taskService; private TaskMapper taskMapper; public TaskController(TaskMapper taskMapper) { this.taskMapper = taskMapper; } @PostMapping("add") public Result Add(@RequestBody Task task){ if(task != null){ taskService.save(task); return Result.suc(); } return Result.fail(); } @PostMapping("update") public Result Update(@RequestParam String id,@RequestParam String receiveid){ System.out.println(receiveid); List list = taskService.lambdaQuery().eq(Task::getId,id).list(); Task task = (Task) list.get(0); if(task!=null && task.getSentid() != Integer.valueOf(receiveid)){ task.setReceiveid(Integer.valueOf(receiveid)); task.setState(1); taskService.saveOrUpdate(task); return Result.suc(); } return Result.fail(); } @PostMapping("finish") public Result Finish(@RequestParam String id,@RequestParam String receiveid){ List list = taskService.lambdaQuery().eq(Task::getId,id).list(); Task task = (Task) list.get(0); if(task!=null && task.getSentid() != Integer.valueOf(receiveid)){ task.setReceiveid(Integer.valueOf(receiveid)); task.setState(task.getState()+1); taskService.saveOrUpdate(task); return Result.suc(); } return Result.fail(); } @PostMapping("confirm") public Result Confitm(@RequestParam String id,@RequestParam String sentid){ List list = taskService.lambdaQuery().eq(Task::getId,id).list(); Task task = (Task) list.get(0); if(task!=null && task.getSentid() == Integer.valueOf(sentid)){ task.setState(task.getState()+1); taskService.saveOrUpdate(task); return Result.suc(); } return Result.fail(); } @PostMapping("listPage") public Result listPage(){ List list = taskService.lambdaQuery().list(); ArrayList<Task> taskArrayList = new ArrayList<>(); for(int i = 0;i<list.size();i++){ taskArrayList.add((Task) list.get(i)); } return Result.suc(taskArrayList); } @GetMapping("/selectPage") public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "5") Integer pageSize, Task task){ List list = taskService.lambdaQuery().list(); List<Task> tasks = new ArrayList<>(); for(int i = 0;i<list.size();i++){ Task task1 = (Task) list.get(i); tasks.add(task1); } for (Task task1 : tasks){ System.out.println(task1.getDescription()); } PageInfo<Task> pageInfo = PageInfo.of(tasks); PageHelper.startPage(pageNum,pageSize); return Result.success(pageInfo); } @PostMapping("/uploadImage") public String uploadImage(@RequestBody String base64Image) { try { // 解码Base64图像数据 byte[] decodedBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image.split(",")[1]); System.out.println(decodedBytes); // 将图像保存到服务器 File file = new File("D:\\project\\android\\stud\\picture\\image.png"); System.out.println(file); FileOutputStream outputStream = new FileOutputStream(file); outputStream.write(decodedBytes); outputStream.close(); sync(); return "Image uploaded successfully."; } catch (IOException e) { e.printStackTrace(); return "Failed to upload image."; } catch (Exception e) { e.printStackTrace(); return "Failed to judge image"; } } @PostMapping("findByTip") public Result findByTip(@RequestParam String tip){ List list = taskService.lambdaQuery().like(Task::getTip1,tip).like(Task::getTip2,tip) .like(Task::getTip3,tip).list(); ArrayList<Task> taskArrayList = new ArrayList<>(); for(int i = 0;i<list.size();i++){ taskArrayList.add((Task) list.get(i)); } return Result.suc(taskArrayList); } @PostMapping("sync") public void sync() throws Exception{ String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); com.aliyun.facebody20191230.Client client = ActionController.createClient(accessKeyId, accessKeySecret); // 场景一,使用本地文件 String file = "D:\\project\\android\\stud\\picture\\image.png"; byte[] img = convertImageToByteArray(file); FileUtils fileUtils = FileUtils.getInstance(accessKeyId, accessKeySecret); String ossUrl = fileUtils.upload(file); com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList URLList0 = new com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList() .setURL(ossUrl); com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList URLList1 = new com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList() .setURL(ossUrl); com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList URLList2 = new com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList() .setURL(ossUrl); com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList URLList3 = new com.aliyun.facebody20191230.models.RecognizeActionRequest.RecognizeActionRequestURLList() .setURL(ossUrl); com.aliyun.facebody20191230.models.RecognizeActionRequest recognizeActionRequest = new com.aliyun.facebody20191230.models.RecognizeActionRequest() .setType(1) .setURLList(java.util.Arrays.asList( URLList0, URLList1, URLList2, URLList3 )); com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); try { RecognizeActionResponse recognizeActionResponse = client.recognizeActionWithOptions(recognizeActionRequest, runtime); // 获取整体结果 System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(recognizeActionResponse))); // 假设recognizeActionResponse是您从API调用中获得的响应对象 // 假设recognizeExpressionResponse是您从API调用中获得的RecognizeExpressionResponse对象 // 假设recognizeActionResponse是您从API调用中获得的RecognizeActionResponse对象 RecognizeActionResponseBody body = recognizeActionResponse.getBody(); // 获取Elements列表 List<RecognizeActionResponseBody.RecognizeActionResponseBodyDataElements> elements = body.getData().elements; // 遍历Elements列表,获取Labels属性,即标签信息 for (RecognizeActionResponseBody.RecognizeActionResponseBodyDataElements element : elements) { List<String> labels = element.getLabels(); for (String label : labels) { if(label.equals("跌倒")){ System.out.println("成功"); //添加新的任务 Task task = new Task(); task.setSentid(10); task.setName("跌倒"); task.setDescription("有人跌倒了,请尽快前往"); task.setTip1("医疗"); task.setPosition("教学楼"); task.setTime(LocalDateTime.now()); task.setBlob(img); taskService.saveOrUpdate(task); System.out.println("成功"); } System.out.println("标签: " + label); } } } catch (com.aliyun.tea.TeaException teaException) { // 获取整体报错信息 // 获取单个字段 System.out.println(teaException.getCode()); } } public static byte[] convertImageToByteArray(String filePath) throws IOException { File file = new File(filePath); FileInputStream fis = new FileInputStream(file); byte[] imageData = new byte[(int) file.length()]; fis.read(imageData); fis.close(); return imageData; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端