To whom it may concern:
We build openCV on top of QT5 over Wayland-EGL for Embedded Linux on ARMv7.
The cv2.imShow() invoked within python does not work as expected while the imShow() with C++ works as expected.
1. detect_barcode sample_barcode.jpg 1 1 (call imshow() within C++ program): OK
qt5 QPA log:
QWaylandIntegration::initializeClientBufferIntegration() with mDisplay = QtWaylandClient::QWaylandDisplay(0xaec70)
Using Wayland-EGL
QWaylandEglClientBufferIntegration::initialize with Display = QtWaylandClient::QWaylandDisplay(0xaec70)
//eglGetDispalt(wl_display)
wl_display = 0xaedc0 *wl_display = 0xb2b8c6b0 &wl_display_interface = 0xb2b8c6b0
SGX DDK log:
wlpvr: hNativeDisplay=0xaedc0, *(void **)dpy=0xb2b8c6b0 &wl_display_interface=0xb2b8c6b0
2. python hist.py ../../../ti/image/sample_barcode.jpg (call cv2.imshow('image',im)): Failed
qt5 QPA log:
QWaylandIntegration::initializeClientBufferIntegration() with mDisplay = QtWaylandClient::QWaylandDisplay(0x3ecc28)
Using Wayland-EGL
QWaylandEglClientBufferIntegration::initialize with Display = QtWaylandClient::QWaylandDisplay(0x3ecc28)
//eglGetDispalt(wl_display)
wl_display = 0x3ecd78 *wl_display = 0xa57f86ac &wl_display_interface = 0xa5d62970
SGX DDK log:
wlpvr: hNativeDisplay=0x3ecd78, *(void **)dpy=0xa57f86ac &wl_display_interface=0xb19456b0
There are two issues here. The wl_display_interface shown at qt5 QPA is different from the one shown at SGX DDK.
The first entry of wl_display does not point to either one of wl_display_interface.
The question is how cv2.imShow() linked with plugins and dynamic loadable modules such as libwayland-client.so, QT plugins, libEGL.so and etc.
Best regards,
Eric Ruei
↧