美文网首页深度学习OpenCv深度学习-推荐系统-CV-NLP
无人驾驶 OpenCV (8) 真正开始无人驾驶

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

作者: zidea | 来源:发表于2019-08-18 20:34 被阅读1次
    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) 真正开始无人驾驶

    相关文章

      网友评论

        本文标题:无人驾驶 OpenCV (8) 真正开始无人驾驶

        本文链接:https://www.haomeiwen.com/subject/mnthsctx.html