jakaskerl How can I resize the first one with the second manip?
In my current code, the second imageManip (resize_rgb) is simply resizing the original image. Is there a way I can pass the output of the first image manip (crop_rgb) to resize_rgb?
My code:
from pathlib import Path
import depthai
import cv2
import numpy as np
import sys
pipeline = depthai.Pipeline()
cam_rgb = pipeline.createColorCamera()
cam_rgb.setPreviewSize(1920, 1080)
cam_rgb.setInterleaved(False)
maxFrameSize = cam_rgb.getPreviewHeight() * cam_rgb.getPreviewWidth() * 3
crop_rgb = pipeline.createImageManip()
crop_rgb.initialConfig.setCropRect(325/1080, 367/1920, 1, 1)
crop_rgb.initialConfig.setResize(450, 450)
cam_rgb.preview.link(crop_rgb.inputImage)
xout_cropped = pipeline.createXLinkOut()
xout_cropped.setStreamName("cropped")
crop_rgb.out.link(xout_cropped.input)
crop_rgb.setMaxOutputFrameSize(maxFrameSize)
resize_rgb = pipeline.createImageManip()
resize_rgb.initialConfig.setResize(640, 640)
cam_rgb.preview.link(resize_rgb.inputImage)
xout_resized = pipeline.createXLinkOut()
xout_resized.setStreamName("resized")
resize_rgb.out.link(xout_resized.input)
resize_rgb.setMaxOutputFrameSize(maxFrameSize)
device = depthai.Device(pipeline)
q_resize = device.getOutputQueue("resized")
q_cropped = device.getOutputQueue("cropped")
while True:
in_cropped = q_cropped.tryGet()
in_resize = q_resize.tryGet()
if in_cropped is not None:
stream = in_cropped.getCvFrame()
if stream is not None:
cv2.imshow("cropped", stream)
if in_resize is not None:
frame = in_resize.getCvFrame()
if frame is not None:
cv2.imshow("resized", frame)
if cv2.waitKey(1) == ord('q'):
break