Как показать окно opencv вместе с GTK3? - PullRequest
0 голосов
/ 11 мая 2019

в Ubuntu это нормально работает, но я тестирую на Raspberry Pi 3 B, я получаю ошибку.

Я использую:

RPi 3 B
Python 3.5.3
OpenCV 4.0.1
Gtk 3.22

Я хочу создать приложение, используя python и gtk3.

В приложении я хочу создать графический интерфейс, также мне нужно opencv для показа изображения, а затем нарисовать изображение с помощью обратного вызова мыши (для получения координат, поскольку я знаю, что область рисования gtk не предоставляет координаты). Этот код для показа изображения отлично работает

импорт cv2

image = cv2.imread ("new.1.png")

cv2.imshow ("AA", изображение)

cv2.waitKey (0)

cv2.destroyAllWindows ()

Но когда я начинаю импортировать библиотеку gtk3, это код:

импорт ги

gi.require_version ('Gtk', '3.0')

из gi.repository import Gtk,

В Тонни Ид, я получаю следующую ошибку:

предупреждение libEGL: DRI2: не удалось аутентифицироваться

qt5ct: с помощью плагина qt5ct

Бэкэнд прекращен (код возврата: -11)

Фатальная ошибка Python: ошибка сегментации

Текущий поток 0x76f1f640 (сначала последний вызов):

Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 в

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1232 в _execute_prepared_user_code

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1158 в оболочке

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1171 в упаковке

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1219 в execute_source

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 853, _execute_source

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 840, _execute_file

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 400 в _cmd_Run

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 217 в handle_command

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 162 в mainloop

Файл "/usr/lib/python3/dist-packages/thonny/backend_launcher.py", строка 70 в

Используйте «Stop / Restart» для перезапуска серверной части ...

В оболочке python я не получаю сообщение об ошибке, просто:

========== RESTART: /home/pi/Downloads/TA/GUI/RPi/try.py ==========

======================= RESTART: Shell ===================== =

затем, когда я импортирую GdkPixbuf:

импорт ги

gi.require_version ('Gtk', '3.0') из gi.repository import Gtk, GdkPixbuf

В Тонне Иде я получаю следующую ошибку:

предупреждение libEGL: DRI2: не удалось аутентифицироваться

qt5ct: с помощью плагина qt5ct

Бэкэнд прекращен (код возврата: -7)

Неустранимая ошибка Python: ошибка шины

Текущий поток 0x76f1f640 (сначала последний вызов):

Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 в

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1232 в _execute_prepared_user_code

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1158 в оболочке

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1171 в упаковке

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 1219 в execute_source

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 853, _execute_source

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 840, _execute_file

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 400 в _cmd_Run

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 217 в handle_command

Файл "/usr/lib/python3/dist-packages/thonny/backend.py", строка 162 в mainloop

Файл "/usr/lib/python3/dist-packages/thonny/backend_launcher.py", строка 70 в

Используйте «Stop / Restart» для перезапуска серверной части ...

Другой код возврата

в оболочке python ошибка:

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: невозможно зарегистрировать существующий тип 'GtkWidget'

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: ошибка g_type_add_interface_static: утверждение 'G_TYPE_IS_INSTANTIATABLE (instance_type)'

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: невозможно зарегистрировать существующий тип 'GtkBuildable'

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: g_type_interface_add_prerequisite: утверждение 'G_TYPE_IS_INTERFACE (interface_type) 'не удалось

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: g_once_init_leave: утверждение 'результат! = 0' не удалось

Предупреждение (из модуля предупреждений): Файл "/home/pi/Downloads/TA/GUI/RPi/try.py", строка 8 cv2.imshow ("AA", изображение) Предупреждение: g_type_register_static: утверждение 'parent_type> 0' не выполнено

Я не понимаю, почему в thonny ide и python shell возвращаются разные сообщения об ошибках.

Моя проблема в том, почему я могу показывать окна opencv вместе с Gtk3? Есть ли решение?

Я пытаюсь сделать exe-файл (в Ubuntu, где код работает нормально) для запуска на RPi, но архитектура RPi - это ARM, а не X86.

...