0
我现在有手部检测代码,当检测到手部时会在手部周围创建一个绿色矩形。但是,我想用另一个jpeg图像填充矩形。我正在考虑使用ImagePattern将图像嵌入到形状中,但在我的程序中似乎不起作用。将jpg图像加载到mat frame opencv java
这是我的用于创建围绕手的矩形代码:
Imgproc.rectangle(frame, handsArray[i].tl(), handsArray[i].br(), new Scalar(0, 255, 0), 3);
该帧是垫子和Imgproc是OpenCV的,javacv功能。
有人可以帮我解决这个问题吗?我奋力
问候
Green Rectangle Around The Hand that needs to be filled
BufferedImage bi = null;
try {
bi = ImageIO.read(new File(trollFace));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Mat mat = new Mat(bi.getHeight(), bi.getWidth(), CvType.CV_8UC3);
byte[] data = ((DataBufferByte) bi.getRaster().getDataBuffer()).getData();
mat.put(0, 0, data);
我试图实现你所说的。首先,我将jpg转换为一个bufferedImage,然后转换为一个mat(因为源图像'frame'是一个mat)。所以src是frame,src2是转换后的bufferImage。我不知道自己做错了什么,但图像仍未显示。请向上滚动以查看我是如何制作Mat src2 – hahahahahahahah
您不需要使用Java ImageIO来读取图像文件,就可以使用OpenCV'Imgcodecs'类读取和写入图像。现在更新你的问题了。请注意,OpenCV中的所有图像格式必须是Mat对象,BufferedImage不是OpenCV数据类型。 –
非常感谢!我将试验并阅读更多关于此的信息,以便我可以将图片背景的加载透明 – hahahahahahahah