2015-10-08 2 views
0

У меня есть несколько изображений из живой передачи в буфере, и я хочу отображать изображения с помощью GTK в Python. В принципе, я думал об использовании цикла while, который получает последний кадр в буфере. Но тогда я не могу понять, как показать это в GTK.GTK segfault, читающий ndarray

Изображения читаются с использованием OpenCV, который создает ndarray. Использование

GdkPixbuf.Pixbuf.new_from_data(image, GdkPixbuf.Colorspace.RGB, False, 8, width, height, width*3) 

Я получаю segfault. Любая идея, что пошло не так?

+0

Я ожидаю, что ваш код поднимет ['TypeError: new_from_data() принимает 9 аргументов (7 данных)'] (http://stackoverflow.com/questions/10341988/converting-pil-gdkpixbuf) re используя GTK3 - немного запутался ... [This] (http://stackoverflow.com/questions/29501835/gtk3-gdk-pixbuf-new-from-data-gives-segmentation-fault-core-dumped-error- 13) имеет ту же ошибку, но ответа нет. Вы можете попробовать ['new_from_bytes'] (https://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-Image-Data-in-Memory.html#gdk-pixbuf-new-from-bytes). Можете ли вы отправить 'type (image)', 'image.shape',' type (image [0] [0]) '? –

+0

Спасибо за понимание! Формат изображения неверен. Я получил 2D-массив, но ожидал RGB-массив. Однако возникла другая проблема. Изображение, отображаемое графическим интерфейсом, не является тем, что я ожидаю. – Cassie

ответ

0

Я нашел решение. Путем заполнения PixBuf по-разному, я мог получить изображение, которое я ожидал. Раствор был найден в Converting PIL Image to GTK Pixbuf. Это второй ответ.