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