问题遇到的现象和发生背景
最近接手一个项目,用yolov5和工业相机实现目标检测。
目前已经用python调用海康工业相机得到numpy数组类型的视频。
但是想要将这种格式的视频传入yolov5的detect.py就出现了问题。
yolov5目前支持的格式为:
1.mp4、avi等视频格式的文件;
2.RTSP、HTTP等视频流;
3.电脑自带相机以及其他免驱动相机;
所以,yolov5不支持传入numpy数组格式的视频
temp = np.asarray(data_buf) #temp是工业相机得到的numpy视频流
temp = temp.reshape((img_h, img_w, img_c))
temp = cv2.cvtColor(temp, cv2.COLOR_BGR2RGB)
cv2.namedWindow("temp", cv2.WINDOW_NORMAL)
cv2.imshow('temp',temp)
我尝试将numpy数组转换成图片
import numpy as np
from PIL import Image
# 将numpy数组转换成图片
def array2img(arr):
# 将numpy数组转换为PIL图片
img = Image.fromarray(np.uint8(arr))
# 显示图片
img.show()
# 创建一个3x3的numpy数组
arr = np.array([[1,2,3],[4,5,6],[7,8,9]], dtype=np.uint8)
# 调用函数将numpy数组转换成图片
array2img(arr)
但是这种方法会保存图片,
对于实施检测来说,就会保存大量图片
实现目标:
将numpy视频流能传入yolov5