gpt4 book ai didi

人脸检测后 JavaCV 工作/写入 BufferdImage

转载 作者:行者123 更新时间:2023-12-01 04:39:11 25 4
gpt4 key购买 nike

我成功地使用 JavaCV 检测人脸,它并不完全准确,但目前已经足够好了。

但是,出于测试目的并展望 future (这只是一个更大的小组项目的一部分),我想使用 BufferedImage 和 Graphics.drawRect() 在面上写入矩形。

我知道您可以使用 JavaCV 的静态方法在面上绘制矩形,但这不是我需要/想要做的。如果我在扫描过程之后尝试使用 ImageIO 加载图像并尝试向其中写入矩形,则应用程序会以 native 错误结束。

有什么方法可以命令openCV“释放”图像(因为我认为这就是问题的根源,opencv不释放图像文件。)?

提前致谢

编辑:错误代码:

# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fc705dafac4, pid=8216, tid=140493568964352
#
# JRE version: 7.0_21-b02
# Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libjpeg.so.8+0x1eac4] jpeg_save_markers+0x84

编辑:

 cvReleaseImage(inputImage);
cvReleaseImage(grayImage);
cvClearMemStorage(storage);

也没有帮助

最佳答案

不用Graphics.drawRect()就可以绘制简单的矩形;有一种在 java 中设置 BufferedImage 像素的好方法。

try {
BufferedImage img = ImageIO.read(new File("img.png"));
int x, y;
int width, hight;
Color color = Color.black;
y = 50;
x = 50;
width = 90;
hight = 90;
for(int i=x;i<=width;i++){
img.setRGB(i, y, color.getRGB());
img.setRGB(i, hight, color.getRGB());
for(int i=y;i<=hight;i++){
img.setRGB(x, i, color.getRGB());
img.setRGB(width, i, color.getRGB());
}
g.drawImage(img, 0, 0, this);
} catch (IOException e) {
System.err.println("!!!IOException!!!");
}

我希望这会有所帮助。

无名

关于人脸检测后 JavaCV 工作/写入 BufferdImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com