[add]斯巴达识别图片并保存有问题的图片 [update]修改菜单权限
This commit is contained in:
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user