Конвертировать структурированный массив Numpy в обычный массив - PullRequest
0 голосов
/ 07 июня 2019

У меня есть массив numpy с dtype.names как:

('s0', 's1', 's2', 's3')

Какие шаги я бы предпринял, чтобы вернуть массив numpy dtype в np.float32?

Я получаю массив numy ('s0', 's1', 's2', 's3') из:

    import pyopencl as cl
    import pyopencl.array as cl_array
    import numpy as np
    from scipy.misc import imread, imsave
    import math
    import os
    import PIL.Image
    import cv2

    os.environ['PYOPENCL_COMPILER_OUTPUT'] = '1'

    #produces numpy array of the structures
    # -> ('s0', 's1', 's2', 's3') and shape (image_width,image_height, image_depth). 
    def process_image(path_to_image, padding):
        rgb_image = PIL.Image.open(path_to_image)
        rgba_image = rgb_image.convert('RGBA')
        im_src = np.array(rgba_image).astype(dtype=np.float32)
        print(im_src.shape)
        return im_src.astype(dtype=cl_array.vec.float4)

dtype=cl_array.vec.float4 связывает 4 np.float32 в (np.float32,np.float32,np.float32,np.float32)

image_depth равно 4:

Я пробовал это:

vector_float4= process_image('image.jpg',0)
result = np.array(vector_float4.tolist())

result имеет форму (width, height, 4, 4).Я ожидал (width, height, 4).

Я смотрю на этот ответ: Преобразование структурированного массива в обычный массив NumPy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...