为yolo预训练网络预处理图像

时间:2019-07-16 17:02:02

标签: python numpy tensorflow yolo

我目前正在一个需要使用error: invalid use of non-static data member ‘MyNAMESPACE::Engine::size’ 的项目中,但是需要将输入图像从yolo3_mobilenet1.0_coco格式转换为(300,300,3),{ {1}},但是在(1,3,300,300)类中有一些特定的函数作为im.resize((1,3,300,300)),但是它们都以gluoncv作为输入参数,但是我想传递具有原始图像作为输入的变量。

有没有能让我做到的功能。因为它一定是我将要传递的变量,因为我不会获取图像文件名。

我已经尝试过

data.transforms.presets.ssd.load_test("string_containing_image_file name", short=512)

其中"string of image file name"x, img = data.transforms.presets.ssd.load_test(im_fname, short=512) 格式的图像的文件名。 但是我无法传递文件名,因为图像将从im_fname进入预处理功能,在该功能中将使用此yolo网络。

1 个答案:

答案 0 :(得分:0)

使用numpy,您可以使用以下代码将图像从最后一个频道更改为第一个频道:

import numpy as np

img = np.random.randn(300, 300, 3)  # creating random image

print(img.shape) #Out: (300, 300, 3)

img_channel_first = np.moveaxis(img, -1, 0)

print(img_channel_first.shape) #Out: (3, 300, 300)

img_in = img_channel_first[np.newaxis,:]

print(img_in.shape) #Out: (1, 3, 300, 300)