ibn_maksimys
-
Количество публикаций
12 -
Зарегистрирован
-
Посещение
-
Days Won
2
Сообщения, опубликованные пользователем ibn_maksimys
-
-
Спасибо, за Задачу по группировке отрезков. Попробую применить для решения моей задачи.
-
Вопрос решен. После длительного "ковыряния" с OpenCV пришел к выводу, что для получения композитного сигнала с TV Tuner'a нужно опускаться до уровня DirectShow. Это новый уровень дзен для меня В этом направлении сейчас и разбираюсь.
-
Нашел вот такую вот программу:
http://www.ronyasoft.nm.ru/virtguard/index.html
Красота, да и только. Как бы их исходники раздобыть, чтобы посмотреть, как у них работа тюнером организована.
-
Сейчас набросал тестовую программку, чтобы посмотреть содержимое CvCapture *capture.
#include "stdafx.h" #include "conio.h" #include "opencv/highgui.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { CvCapture* capture = 0; capture = cvCreateCameraCapture(0); if(!capture){ return -1; } IplImage *bgr_frame=cvQueryFrame(capture); cout << bgr_frame->depth; cout << bgr_frame->width; getch(); return 0; }
Web-камеры не подключены. Из устройств видео-захвата только tv-tuner.
Поставил BreakPoint. Содержимое capture посмотреть нельзя. Поэтому смотрю, что содержится а IplImage *bgr_frame:
nSize = 112
nChannels = 3
depth = 8
colorModel = "RGB"
channelSeq = "BGR"
align = 4
heigh = 4 (Вот тут я не пойму, почему высота 4, а не 480 например, как при подключении web-камеры)
width = 0
widthStep = 0
Таким образом, получается, что программа подхватывает видео-поток, но в нем содержится не то, что мне нужно. Не оцифрованное видео с композитного входа. Как бы изменить настройки тюнера, чтобы он выдавал то, что я от него жду.
-
Совсем недавно начал изучать openCV. При попытке получить кадр с камеры в окне постоянно показывается такая строка : "Error: SampleCB() - buffer sizes do not match", хотя при этом кадры нормально отображаются. Можно ли избавиться от этой ошибки? И ещё такой вопрос, хотелось бы узнать о затратах в ресурсах при использовании функций из openCV.
Нашли причину этой ошибки?
-
Добрый день!
Написал программу, которая захватывает кадры с web-камеры и выводит их на pictureBox.
До этого работал с Matlab и там, видео с композитного входа тв-тюнера отражалось также как и видео с камеры. Но в OpenCV так не срабатывает. Например вот эта программа:
#include "stdafx.h" #include "opencv/highgui.h" CvCapture* capture; int _tmain(int argc, _TCHAR* argv[]) { cvNamedWindow( "Example", CV_WINDOW_AUTOSIZE ); capture = cvCaptureFromCAM(0); if( capture != NULL ){ IplImage* frame; while(1) { frame = cvQueryFrame( capture ); if( !frame ) break; cvShowImage( "Example", frame ); char c = cvWaitKey(33); if( c == 27 ) break; } cvReleaseCapture( &capture ); cvDestroyWindow( "Example" ); }; return 0; }
создает окно Example, т.е. по сути имеет доступ у видео-потоку, но не выводит этот пресловутый поток в окно Example.
Кто-нибудь сталкивался с получением видео-данных с web-камеры?
-
Вручную вызывать деструктор? Вот уж не думаю. Или ты объект через malloc создаешь? Если через new, то вызывай delete. Иначе долго будешь ошибки с памятью ловить.
Спасибо, так и правда технологичней. Поправил.
-
Разобрался. Для объекта типа:
cv::VideoWriter *record;
Для корректного завершения записи необходимо вызвать деструктор:record->~VideoWriter();
-
Добрый вечер, Товарищи!
Кто-нибудь работал с VideoWriter()?
Если "Да", то подскажите пожалуйста, как корректно остановить запись в видео-файл, чтобы видео было финализировано?
-
А что мешает Mat сохранить? функцией imwrite к примеру
Есть уже написанный код, который работает со структурой IplImage, это раз, а во-вторых - в целях повышения образованности.
Нашел как преобразовать.
cv::Mat frame; IplImage img ((IplImage)frame); cvSaveImage(fileNameSave,&img);
- 2
-
Добрый день!
При написании программы появилась необходимость сохранять кадр, полученный с камеры, на диск. При работе с камерой кадры сохраняются в переменной типа cv::Mat, сохранить же на диск хочу через cvSaveImage(). Но для этого необходимо преобразовать cv::Mat в IplImage *.
Пробовал многие способы из описанных в Интернете - преобразовать не получается. Например вот так.
cv::Mat frame; IplImage *img = cvCreateImage(cvSize(frame.cols, frame.rows),3,1); img->imageData = (char*)frame.data;
Кто сталкивался с подобной задаче, подскажите пожалуйста!
Выделение информационных сюжетов
в Обсуждение общих вопросов
Опубликовано · Report reply
Добрый день!
Появилась задача разделения потокового вещания, получаемого с ТВ(euronews, Россия24 и т.д.), на информационные сюжеты. Беглый поиск в Интернете не позволил найти идей решения подобной задачи.
Первое что приходит мне на ум, это использование шаблона вещания: отыгрыши между сюжетами, логотип канала, наличие бегущей строки. Но данный подход требует настройки под каждый канала и в случае внесения изменений в оформления канала будут неприятные сюрпризы. Кто-нибудь встречал идеи решения подобной задача в нашей/зарубежной периодике, есть ли у вас какие-нибудь продуктивные идеи на этот счет?