У меня есть модель onnx в opencv, и я пытаюсь нарисовать рамку вокруг обнаружения на изображении. Как реализовать эту функцию?
Это мой текущий код:
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Net model = Dnn.readNet("face.onnx");
VideoCapture camera = new VideoCapture(1);
Mat frame = new Mat();
Mat scaled = new Mat();
while (true) {
camera.read(frame);
Imgproc.resize(frame, scaled, new Size(256, 320));
// create empty Mat images for float conversions
Mat imgFloat = new Mat(scaled.rows(), scaled.cols(), CvType.CV_32FC3);
// convert input image to float type multiplying by SCALE_FACTOR
scaled.convertTo(imgFloat, CvType.CV_32FC3, SCALE_FACTOR);
Mat blob = Dnn.blobFromImage(
imgFloat,
1.0, /* default scalefactor */
new Size(TARGET_IMG_WIDTH, TARGET_IMG_HEIGHT), /* target size */
new Scalar(1), /* mean */
true, /* swapRB */
false /* crop */
);
model.setInput(blob);
Mat classification = model.forward();
HighGui.imshow("Camera Capture", frame);
HighGui.waitKey(1);
}
}
Вывод модели: баллы и коробки. для оценок результат:
float32[1,4420,4]
а вывод для ящиков:
float32[1,4420,2]
Подробнее здесь: https://stackoverflow.com/questions/790 ... en-cv-java