python - 不能在 python 中同时使用 opencv 和 Gdk
问题描述
这个简单的程序同时导入了 cv2 和 Gdk 并尝试执行一个简单的 imshow() ,但它会因一堆断言而失败:
import cv2
import numpy as np
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
from gi.repository import GdkPixbuf
print('imshowing...')
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
print('all done')
它失败并显示以下内容:
mshowing...
./fail.py:9: Warning: cannot register existing type 'GdkDisplayManager'
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: g_once_init_leave: assertion 'result != 0' failed
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: invalid (NULL) pointer instance
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: cannot register existing type 'GdkDisplay'
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
./fail.py:9: Warning: g_type_register_static: assertion 'parent_type > 0' failed
cv2.imshow(mat=np.zeros((100, 100, 3), dtype=np.uint8), winname='test')
Segmentation fault (core dumped)
知道如何让两者正常工作吗?
干杯,
解决方案
推荐阅读
- javascript - 动画方块在盒子内弹跳。用图像填充正方形。使用 [canvas] [img] fillStyle 和 drawImage()
- javascript - 将 mp3 拆分为可独立播放的片段,如果需要,可以将其缝合回去
- javascript - 无法更新 daterangepicker 值
- react-native - 从我的 reactnative/expo 应用程序打开 Spotify 应用程序
- django-admin - 有没有办法将组的所有成员设置为 django 中的超级用户?
- intellij-idea - IntelliJ 中的条形消失了
- php - 如示例所示,如何在数组中显示 MySQL 数据?
- java - 哈希表:赎金票据hackerrank
- java - 服务器没有收到来自客户端的请求
- angular - 对具有路由器依赖性的 Angular 服务进行单元测试:“TypeError:无法读取未定义的属性 'navigate'”