gpt4 book ai didi

java - 在mat框架opencv java上加载jpg图像

转载 作者:行者123 更新时间:2023-12-02 12:21:43 25 4
gpt4 key购买 nike

我现在有手部检测代码,当检测到时,它会在手部周围创建一个绿色矩形。但是,我想用另一个 jpeg 图像填充矩形。我正在考虑使用 ImagePattern图像嵌入到形状内,但这似乎在我的程序中不起作用。

这是我在手周围创建矩形的代码:

Imgproc.rectangle(frame, handsArray[i].tl(), handsArray[i].br(), new Scalar(0, 255, 0), 3);

框架是一个Mat,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);

最佳答案

您可以按照以下步骤进行操作:

  1. 对源图像中的矩形进行子化

    Mat submat = src.submat(new Rect(200, 200, 100, 100));

  2. 现在将第二个图像复制到子垫中

    src2.copyTo(submat);

注意:在复制之前,请确保第二张图像的大小与矩形相同,如果不是,您可以使用 resize() Imgprc的功能类来调整垫子的大小。就是这样。

更新:以下是示例。

Mat src = Imgcodecs.imread("C:\\src1.jpg");
Mat src2 = Imgcodecs.imread("C:\\src2.jpg");
Imgproc.resize(src2, src2, new Size(100, 100));
Mat submat = src.submat(new Rect(200, 200, 100, 100));
src2.copyTo(submat);

// now you can do what you want with the src1

关于java - 在mat框架opencv java上加载jpg图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45724801/

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