cv2 不显示通过远程桌面的显示

cv2 不显示通过远程桌面的显示

我目前正在尝试为我的项目实现实时反馈功能。我有一个功能应该使用 opencv 显示相机的实时反馈。当我在 ubuntu 版本 20.04 的英特尔 NUC 上本地运行代码时,我能够从显示器上看到视频源。但是,当我使用 XRDP 通过远程桌面连接时,我无法再看到视频源,也没有收到任何错误。我尝试在 ubuntu 版本 20.04 的树莓派上使用远程桌面并运行代码,它可以工作。

我检查了每个设备上的权限,发现树莓派上的用户包含在视频组中,而 NUC 上的用户不包含在视频组中。这是否是我在 NUC 上看不到任何视频源的原因?

这是使用的函数

def live_feed():
global ui_exit_flag
global image_capture_flag

while not ui_exit_flag:
    # Check if image capture is in progress, and if so, pause the camera feed
    while image_capture_flag:
        pass
    #print("UI Thread: Exit flag is " + str(ui_exit_flag))
    success, img = camera.read()
    if success:
        for barcode in pyzbar.decode(img):
            myData=barcode.data.decode('utf-8')
            pts=barcode.polygon
            if len(pts)>=4:
                pts=np.array(pts,np.int32)
                cv2.polylines(img,[pts],True,(255,0,255),6)
                pts2=barcode.rect
                cv2.putText(img,text=myData,org=(pts2[0],pts2[1]),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=0.5,color=(0,244,0),thickness=2)

        cv2.imshow('Press (Q) to close', img)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    #else:
        #print("Not showing live")
    #print("Showing Live")
camera.release()
print("UI Thread: No longer showing live")

相关内容