Jump to content

    

Search the Community

Showing results for tags 'opencv'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 1 result

  1. Возникла необходимость регистрировать событие с вебкамеры. Общая идея -отображать в части окна видео с камеры и на этом же окне кнопки для управления и настройки. Для этой затеи приспособил Orange PI с Armbian 5.9, захват видео с камеры успешно работает до момента нажатия кнопки "butt_1". Причём далее программа на кнопку реагирует, а видео останавливается. Подозреваю, что нет необходимого условия для отрисовки части окна. Это не смотря на то, что каждый раз выполняется "gtk_widget_queue_draw(area);" Может что не так в программе...? /* makefile CXX ?= g++ CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv --libs gtk+-2.0) LDFLAGS += $(shell pkg-config --libs --static opencv --libs gtk+-2.0) all: prog_ex prog_ex: main.o; $(CXX) $< -o $@ $(LDFLAGS) %.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS) clean: ; rm -f main.o prog_ex */ #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/videoio.hpp" #include "highgui.h" #include <linux/videodev2.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <gtk/gtk.h> #include <gdk/gdk.h> #include <cairo.h> #include <stdio.h> #include <stdbool.h> #include <iostream> using namespace cv; using namespace std; GtkWidget *window; GdkPixbuf* pix; GtkWidget *area; CvCapture* cam_capture; IplImage* frame; VideoCapture capture; //кнопоки и ... GtkWidget *vbox_1; //контейнер GtkWidget *hbox_1; GtkWidget *video_box; GtkWidget *btn1,*btn2; //кнопки static void destroy(GtkWidget *widget, gpointer data) { gtk_main_quit(); } //событие по кнопке static void clic_butt_1(GtkWidget *widget, gpointer data) { g_print("\n\r key pres"); } //событие по кнопке exit static void clic_butt_2(GtkWidget *widget, gpointer data) { gtk_main_quit(); } //Работает до тех пор пока не нажата "btn1" !!! static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { g_print("N_1"); frame = cvQueryFrame(cam_capture); if(!frame) { g_print("Err_1"); return TRUE;} pix = gdk_pixbuf_new_from_data((guchar*) frame->imageData, GDK_COLORSPACE_RGB,FALSE, frame->depth, frame->width-350, frame->height -150, (frame->widthStep), NULL, NULL); gdk_draw_pixbuf(widget->window,widget->style->fg_gc[GTK_WIDGET_STATE (widget)], pix, 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); // -> X gtk_widget_queue_draw(area); return FALSE ; } //================================================= int main(int argc, char *argv[]) { g_print("\n\rTest prog capture video of webcam"); cam_capture = cvCreateCameraCapture(0); gtk_init(&argc, &argv); //Окно window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Test Open_CV"); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); GdkGeometry windowProperties; windowProperties.min_width = 800; windowProperties.min_height = 600; gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &windowProperties, GDK_HINT_MIN_SIZE); gtk_window_set_resizable(GTK_WINDOW(window), FALSE); g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); //виджет area = gtk_drawing_area_new(); gtk_drawing_area_size(GTK_DRAWING_AREA(area), 300, 300); //BOX контейнер vbox_1 = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); hbox_1 = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); video_box = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); //создать кнопки btn1 = gtk_button_new_with_label (" Test_key "); btn2 = gtk_button_new_with_label (" Close "); gtk_button_set_relief(GTK_BUTTON(btn1), GTK_RELIEF_NORMAL); //Кнопки в контейнер gtk_box_pack_end (GTK_BOX (hbox_1),btn1, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (hbox_1),btn2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX (video_box),area, FALSE, TRUE, 0); //Контейнер кнопок -> в контейнер номер 1 gtk_box_pack_end (GTK_BOX (vbox_1),hbox_1, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_1),video_box, FALSE, TRUE, 0); //Контейнер с контейнером на окно gtk_container_add (GTK_CONTAINER (window), vbox_1); //на окно //СОбытия кнопок "pressed","released","clicked" g_signal_connect (G_OBJECT(btn1), "clicked", G_CALLBACK (clic_butt_1),NULL); g_signal_connect (G_OBJECT(btn2), "clicked", G_CALLBACK (clic_butt_2),NULL); //событие - "видео с камеры" - работает пока кнопка не нажата!!?? почему так g_signal_connect(G_OBJECT(area), "expose_event", G_CALLBACK(expose_event), NULL); gtk_widget_show_all(window); gtk_main(); return 0; }