序列:
常见的序列有:list, tuple, str, bytes, bytearray
字节串 bytes,字节数组bytearray是二进制数据组成的序列,其中每个元素8bit二进制组成
字节数组bytearray
可变的字节序列,相当于bytes的可变版本
创建bytearray对象的方法规则
import numpy as np
import jpeg4py as jpeg
import cv2
im_path='/home/jerry/shared/data/car_detect/test_image/timg.jpeg'
with open(im_path, 'rb') as file:
encoded_image = file.read()
print('wp1',len(encoded_image),encoded_image)#3Do\x94\n\xc9\x18\xdf\x8c&\r\x,类似于二进制的表达方式
encoded_image = np.array(bytearray(encoded_image), dtype=np.uint8) # 把图片数据转换为字节数组
print('p2',len(encoded_image),encoded_image)#877724 [255 216 255 ... 107 255 217]这里是一个一维的数组,共有877724 个元素
def imread(im_path):
try:
img = jpeg.JPEG(im_path).decode()[..., ::-1] # RGB -> BGR
except Exception as ex:
img = cv2.imread(im_path, cv2.IMREAD_COLOR)
return img
image = imread(im_path)#这种方式的数据量比较大s
print(image.shape)#(2304, 4096, 3)
#总结,可以明显看出,第一种的序列方式数据量小