python - 将 cv2.umat 转换为 numpy 数组

标签 python numpy opencv computer-vision pytorch

Processed_image() 函数返回一个 cv2.Umat 类型的值,该值将从 3 维(h, ch, w) 到 4 维(h, ch, w, 1) 所以 i 需要转换 到 numpy 数组或者如果可能的话帮助我直接重新整形 cv2.umat 要直接 reshape 并转换为 pytorch 张量的类型变量,可以是 分配给 reshaped_image_tensor。

img_w=640
img_h=640
img_ch=3
umat_img = cv2.UMat(img)
display_one(umat_img, "RESPONSE")    #function created by me to display image
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
with torch.no_grad():
    processed_img = preprocess_image(umat_img, model_image_size = (img_h, img_ch, img_w))
    #___________write YOUR CODE here________
    reshaped_images_tensor = torch.from_numpy(processed_img.reshape(img_h, img_ch, img_w, 1)).float().to(device)      #images_tensor.reshape(img_h, img_ch, img_w, 1)
    outputs = model(reshaped_images_tensor)
    _, predicted = torch.max(outputs, 1)
    c = predicted.squeeze()
    output_probability(predicted, processed_img, umat_img)
if ord('q')==cv2.waitKey(10):
    exit(0)

最佳答案

我没有完全理解你的问题,但你可以使用“get()”获取 opencv 的 umat 的 numpy 数据,例如 this

你可能应该permute你的张量,然后再将它输入你的模型。

关于python - 将 cv2.umat 转换为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55062886/

相关文章:

c++ - 强制Qt摄像机视频格式

ios - 适用于 iOS 图形应用程序的 OpenCV

c++ - OpenCV 线的平均方向/角度

python - 你如何遍历多边形中的点?

python - 在 Python 中查找最接近的值并返回数组的索引

python - 如何使用 boto3 手动从 DynamoDB 有线协议(protocol)转换为 native Python 对象?

python - 对 python 元组进行分箱。由于空箱而导致错误

python - 在Tensorflow中批量读取numpy矩阵

Python 日期字符串 mm/dd/yyyy 转日期时间

python - 交通标志分类 - 分配形状为 [] 且类型为 float 的张量时的 OOM