{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "a54d6b11-4fae-44a8-84e2-3f11a2142e53", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "libEGL warning: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "libEGL warning: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "libEGL warning: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "QObject::moveToThread: Current thread (0x991c6e0) is not the object's thread (0xa87a2c0).\n", "Cannot move to target thread (0x991c6e0)\n", "\n", "[ WARN:0@730.173] global cap_ffmpeg_impl.hpp:1541 grabFrame packet read max attempts exceeded, if your video have multiple streams (video, audio) try to increase attempt limit by setting environment variable OPENCV_FFMPEG_READ_ATTEMPTS (current value is 4096)\n" ] } ], "source": [ "import cv2\n", "import mediapipe as mp\n", "\n", "# Initialize mediapipe hands module\n", "mphands = mp.solutions.hands\n", "mpdrawing = mp.solutions.drawing_utils\n", "\n", "# Specify the path to your video file\n", "vidpath = '/home/stevend/Videos/Webcam/moises_mano1.mp4'\n", "\n", "# Initialize video capture\n", "vidcap = cv2.VideoCapture(vidpath)\n", "\n", "# Set the desired window width and height\n", "winwidth = 350\n", "winheight = 600\n", "\n", "# Initialize hand tracking\n", "with mphands.Hands(min_detection_confidence=0.5, min_tracking_confidence=0.5) as hands:\n", " while vidcap.isOpened():\n", " ret, frame = vidcap.read()\n", " if not ret:\n", " break\n", "\n", " # Convert the BGR image to RGB\n", " rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", "\n", " # Process the frame for hand tracking\n", " processFrames = hands.process(rgb_frame)\n", "\n", " # Draw landmarks on the frame\n", " if processFrames.multi_hand_landmarks:\n", " for lm in processFrames.multi_hand_landmarks:\n", " mpdrawing.draw_landmarks(frame, lm, mphands.HAND_CONNECTIONS)\n", "\n", " # Resize the frame to the desired window size\n", " resized_frame = cv2.resize(frame, (winwidth, winheight))\n", "\n", " # Display the resized frame\n", " cv2.imshow('Hand Tracking', resized_frame)\n", "\n", " # Exit loop by pressing 'q'\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "\n", "# Release the video capture and close windows\n", "vidcap.release()\n", "cv2.destroyAllWindows()" ] }, { "cell_type": "code", "execution_count": null, "id": "45acddc7-69df-43c4-bc08-442516f84176", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "c6009534-cf18-4a1e-bba3-cf646d4b80a1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 5 }