下面两种调用摄像头显示图像的代码,第一种方法直接绑定摄像头到Video层可以正常流畅的显示摄像头的画面,第二种方法用Show_img方法显示画面,在画面移动的时候会有严重的画面撕裂
第一种(正常显示)
import sys,uosimport
timefrom media.sensor import *from media.display import *from media.media import *if __name__ == "__main__": try: sensor = Sensor(width=1270,height=960) # sensor reset sensor.reset() # set chn1 output format sensor.set_framesize(width = 640, height = 480, chn = CAM_CHN_ID_1)# sensor.set_pixformat(Sensor.RGB565, chn = CAM_CHN_ID_1) sensor.set_pixformat(PIXEL_FORMAT_YUV_SEMIPLANAR_420, chn = CAM_CHN_ID_1) sensor_bind_info = sensor.bind_info(x = 0, y = 0, chn = CAM_CHN_ID_1) Display.bind_layer(**sensor_bind_info, layer = Display.LAYER_VIDEO1) # use lcd as display output Display.init(Display.ST7701,width=640,height=480,to_ide = True) # init media manager MediaManager.init() # sensor start run sensor.run() while True: print("1")# img = sensor.snapshot(chn = CAM_CHN_ID_1)# Display.show_image(img) except KeyboardInterrupt as e: print(f"user stop") except BaseException as e: print(f"Exception '{e}'") finally: # sensor stop run if isinstance(sensor, Sensor): sensor.stop() # deinit display Display.deinit() os.exitpoint(os.EXITPOINT_ENABLE_SLEEP) time.sleep_ms(100) # release media buffer MediaManager.deinit()第二种(画面撕裂)
import sys,uosimport timefrom media.sensor import *from media.display import *from media.media import *if __name__ == "__main__": try: sensor = Sensor(width=1270,height=960) # sensor reset sensor.reset() # set chn1 output format sensor.set_framesize(width = 640, height = 480, chn = CAM_CHN_ID_1) sensor.set_pixformat(Sensor.RGB565, chn = CAM_CHN_ID_1)# sensor.set_pixformat(PIXEL_FORMAT_YUV_SEMIPLANAR_420, chn = CAM_CHN_ID_1) # sensor_bind_info = sensor.bind_info(x = 0, y = 0, chn = CAM_CHN_ID_1)# Display.bind_layer(**sensor_bind_info, layer = Display.LAYER_VIDEO1) # use lcd as display output Display.init(Display.ST7701,width=640,height=480,to_ide = True) # init media manager MediaManager.init() # sensor start run sensor.run() while True:# print("1") img = sensor.snapshot(chn = CAM_CHN_ID_1) Display.show_image(img) except KeyboardInterrupt as e: print(f"user stop") except BaseException as e: print(f"Exception '{e}'") finally: # sensor stop run if isinstance(sensor, Sensor): sensor.stop() # deinit display Display.deinit() os.exitpoint(os.EXITPOINT_ENABLE_SLEEP) time.sleep_ms(100) # release media buffer MediaManager.deinit()请问这是什么原因?