将Opencv读取的图片转换成MindX SDK Image类
收藏回复举报
将Opencv读取的图片转换成MindX SDK Image类
t('forum.solved') 已解决
发表于2025-02-26 14:19:45
0 查看

【问题】

用opencv读视频然后用MindX SDK接口推理,发现opencv库图像预处理比较耗时,打算根据教程用MindX SDK提供的媒体数据处理Image类和ImageProcessor类进行图像预处理,怎么把opencv读取的图片,视频或摄像头图像数据转成Image类。

【需求】尝试代码如下:

import cv2
import numpy as np
from mindx.sdk import Tensor, base
from mindx.sdk.base import ImageProcessor, Size, Image

base.mx_init()  # 执行全局初始化后即可正常调用mxVision接口

image_path = "video/world_cup.jpg"
image = cv2.imread(image_path)  # 读入图片
#img = np.random.randint(0, 255, (640, 400, 3), dtype=np.uint8)
image = np.ascontiguousarray(image)
print(image.shape, image.dtype)

size_para = Size(650, 433)
size_para2 = Size(650, 433)
iimage = Image(image, base.bgr, (size_para, size_para2))

#iimage(image, base.bgr)
iimage.to_host()
# 图像解码
# 初始化ImageProcessor对象
# imageProcessor = ImageProcessor(deviceId=0)
# 读取图片路径进行解码,解码格式为nv12(YUV_SP_420)
# decoded_image = imageProcessor.decode(image_path, base.nv12)
image_pre = iimage
print(image_pre)
# image = cv2.resize(image, (640, 400))
cv2.imshow("Output", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

我要发帖子