从十六进制字符串构造 Numpy 数组

Bar*_*uda 5 python numpy numpy-ndarray

我有一个"89-50-4E-47-0D-0A-1A-0A-00-00-00-0D-49"具体的十六进制字符串,它将包含图像的数据。

我想将其转换为 Numpy 数组,或者可能从所述数据重建 OpenCV 图像。

还将提供宽度和高度,以便知道 Numpy 数组的尺寸。

如何从上面的字符串构造一个 Numpy 数组?

yat*_*atu 3

我们可以使用, 并使用 中的np.fromiter参数将各个字符串转换为十六进制,然后使用中的参数转换为整数类型:baseintdtypenp.fromiter

s = "89-50-4E-47-0D-0A-1A-0A-00-00-00-0D-49"

np.fromiter((int(x, 16) for x in s.split('-')), dtype=np.int32)
# array([137,  80,  78,  71,  13,  10,  26,  10,   0,   0,   0,  13,  73])
Run Code Online (Sandbox Code Playgroud)