深度学习OpenCv深度学习-推荐系统-CV-NLP

无人驾驶 OpenCV (8) 真正开始无人驾驶

2019-08-18  本文已影响1人  zidea
import cv2

def process_frame(img):
    print(img.shape)

if __name__ == "__main__":
    cap = cv2.VideoCapture("videos/test.mp4")

    while cap.isOpened():
        ret, frame = cap.read()
        if ret == True:
            process_frame(frame)
        else:
            break
(1080, 1920, 3)
import cv2
import sdl2
import sdl2.ext
# import pygame


sdl2.ext.init()
W = 1920//2
H = 1080//2

window = sdl2.ext.Window("hello zidea",size=(W,H),position=(-500,-500))
window.show()

初始化 sdl 程序。
然后创建一个 sdl 窗口,设置标题为 hello zidea, 随后参数设置宽度和高度,position 设置窗口在显示器显示的位置。


def process_frame(img):
    img = cv2.resize(img,(W,H))
    events = sdl2.ext.get_events()
    # cv2.imshow('image',img)
    for event in events:
        if event.type == sdl2.SDL_QUIT:
            exit(0)

events = sdl2.ext.get_events() 获取 sdl2 事件,当事件类型为 SDL_QUIT 则退出应用。

    surf = sdl2.ext.pixels3d(self.window.get_surface())
    surf[:,:,0:3] = img.swapaxes(0,1)
    window.refresh()

首先从词义上得知swap是“交换”的意思,swapaxes(a,b)函数则应该是a,b两个轴编号进行位置互换后数组的变化。
获取 sdl 窗口渲染方式的表面,然后通过将图像数据赋值给 surf 来实现将图像渲染到 sdl 上。


if __name__ == "__main__":
    cap = cv2.VideoCapture("videos/test.mp4")

    while cap.isOpened():
        ret, frame = cap.read()
        if ret == True:
            process_frame(frame)
        else:
            break

感谢 george hotz 的分享

george hotz
无人驾驶 OpenCV (8) 真正开始无人驾驶
上一篇下一篇

猜你喜欢

热点阅读