[add]斯巴达识别图片并保存有问题的图片 [update]修改菜单权限

This commit is contained in:
lcj
2025-06-23 19:50:27 +08:00
parent e42f1a0b8c
commit 0edd267f78
23 changed files with 798 additions and 82 deletions

View File

@ -3,9 +3,24 @@ package org.dromara.test;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.dromara.manager.spartamanager.SpartaManager;
import org.dromara.manager.spartamanager.enums.SpartaRecTypeEnum;
import org.dromara.manager.spartamanager.vo.SpartaRecognizeVo;
import org.dromara.manager.spartamanager.vo.SpartaTargetVo;
import org.dromara.other.domain.dto.ys7deviceimg.OthYs7DeviceImgCreateByCapture;
import org.dromara.other.service.IOthYs7DeviceImgService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
import java.util.List;
/**
* @author lcj
* @date 2025/6/20 19:40
@ -17,9 +32,82 @@ public class SpartaTest {
@Resource
private SpartaManager spartaManager;
@Resource
private IOthYs7DeviceImgService othYs7DeviceImgService;
@Test
public void test() {
String token = spartaManager.getToken();
log.info("token: {}", token);
}
@Test
public void test2() throws URISyntaxException, IOException {
String url = "http://58.17.134.85:9000/xinnengyuan-dev/ys7/device/img/sxt_1750583731809_227.jpg";
// List<SpartaRecTypeEnum> hat = List.of(SpartaRecTypeEnum.HAT, SpartaRecTypeEnum.HEAD);
// SpartaRecognizeVo recognize = spartaManager.recognize(
// url,
// hat,
// null,
// null,
// null
// );
// log.info("识别结果: {}", recognize);
SpartaRecognizeVo vo = new SpartaRecognizeVo();
vo.setHasTarget(1);
vo.setOriginalImgSize(List.of(2560, 1440));
SpartaTargetVo targets = new SpartaTargetVo();
targets.setType("hat");
targets.setSize(List.of(59, 78));
targets.setLeftTopPoint(List.of(880, 597));
targets.setScore(0.41687846183776855);
vo.setTargets(List.of(targets));
// 1. 读取图片
URI uri = new URI(url);
BufferedImage image = ImageIO.read(uri.toURL());
// 2. 创建画布
Graphics2D g = image.createGraphics();
g.setColor(Color.RED);
g.setStroke(new BasicStroke(5));
g.setFont(new Font("SansSerif", Font.BOLD, 18));
// 3. 遍历目标并画框
for (SpartaTargetVo target : vo.getTargets()) {
List<Integer> size = target.getSize(); // 宽高
List<Integer> leftTop = target.getLeftTopPoint(); // x y
int x = leftTop.get(0);
int y = leftTop.get(1);
int width = size.get(0);
int height = size.get(1);
// 画矩形框
g.drawRect(x, y, width, height);
// 写文字(类型 + 置信度)
String label = SpartaRecTypeEnum.fromValue(target.getType()).getText() + " (" + String.format("%.2f", target.getScore()) + ")";
g.drawString(label, x, y - 5);
}
g.dispose();
// 4. 保存标记后的图片
File outFile = new File("marked_output.jpg");
ImageIO.write(image, "jpg", outFile);
System.out.println("标记完成,保存路径: " + "marked_output.jpg");
}
@Test
public void test3() {
String url = "http://58.17.134.85:9000/xinnengyuan-dev/ys7/device/img/sxt_1750583731809_227.jpg";
OthYs7DeviceImgCreateByCapture img = new OthYs7DeviceImgCreateByCapture();
img.setCreateTime(new Date());
img.setUrl(url);
img.setDeviceName("摄像头1");
img.setDeviceSerial("sxt_1750583731809_227");
log.info("识别结果: {}", img);
othYs7DeviceImgService.saveCapturePic(List.of(img));
}
}