|
1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62
|
||||||
Не работает функция cvWriteFrame27.05.2017, 12:42. Показов 1179. Ответов 6
Метки нет (Все метки)
Помогите разобраться почему не работает программа для записи видео с экрана.Программа компилируется,но при запуске выскакивает исключение
System.Runtime.InteropServices.SEHExcept ion" в приложении ЗАГОТОВКА_OpenCV_WF.exe Дополнительные сведения: Внешний компонент создал исключение. В стеке вызовов: "указанные ниже фреймы могут быть неверны и(или) отсутствовать,символы для opencv_core220d.dll не загружены" Проверяю frame - через cvShowImage( "original", frame ) - все в порядке.А записываться он не хочет. Вот код
0
|
||||||
| 27.05.2017, 12:42 | |
|
Ответы с готовыми решениями:
6
|
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 27.05.2017, 16:00 | |
Сообщение было отмечено vvch43 как решение
Решение
строка 24. Вы вроде хотели получать картинку 8bppIndexed - индексированные цвета (до 256)
строка 31. По докам http://docs.opencv.org/2.4/mod... ctures.htm. Для 8 битного формата пиксела вы указали количество каналов 4, хотя скорее всего в таком формате нету альфа канала и поэтому следует указать 3 (RGB) В итоге получается, что вы данные 32 битного изображения пытаетесь скрестить с 8 битным Добавлено через 10 минут Хотя может не так понял=)
1
|
|
|
1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62
|
|
| 28.05.2017, 11:31 [ТС] | |
|
Спасибо за подсказку. Поменял число каналов на 3 и все пошло. Но видео отвратительного качества. Методом "тыка" нашел оптимальный вариант,когда и прога работает и качество записи отличное - преобразую не в 8bppIndexed ,а в 24pbbRgb оставляя 3 канала.
Возникла другая проблема - переполнение памяти. Решил освобождать память под frame в конце каждого цикла через cvReleaseImage(&frame).Но выскакивает ошибка - cvReleaseImage: невозможно преобразовать параметр 1 из "cli::interior_ptr<Type>" в "IplImage **" Ту я не могу понять в чем дело. ведь frame объявлен как IplImage*frame когда использую frame = nullptr то все нормально Добавлено через 45 минут И еще одна проблема - не срабатывает break, цикл не разрывается. Приходится закрывать через Диспетчер задач Добавлено через 3 минуты И последнее - записанный файл имеет скорость значительно выше чем источник записи. Менял параметр в cvWaitKey - не помогает
0
|
|
|
1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62
|
|
| 29.05.2017, 18:39 [ТС] | |
|
С прерывание цикла разобрался.Пришлось цикл запустить в другом потоке,используя компонент BackgroundWorker.
А с другой проблемой не знаю,что делать. Пытался-пытался,но так сам и не разобрался. Полученное в результате записи видео воспроизводится со скоростью вмного выше ,чем оригинал,с которого пишу.В чем может быть дело ?
0
|
|
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|||||||
| 29.05.2017, 21:10 | |||||||
Сообщение было отмечено vvch43 как решение
Решение
Только одно - копать доки OpenCV
Добавлено через 31 минуту Вы проверяли сколько раз цикл срабатывает в секунду? Тут же надо учесть затрату на преобразования. И в обще делать скрин через ресурсы net немного ресурсоемко нежели через winapi. Я считаю это ресурсозатратное действие - строка 24
0
|
|||||||
|
1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62
|
|
| 30.05.2017, 21:16 [ТС] | |
|
Спасибо за совет,с утра попробую и отпишусь по результату
Добавлено через 10 часов 34 минуты Да,Вы правы,как я не заметил,что необходимый мне формат можно получить сразу без дополнительного клонирования ?! Но ,к сожалению,на скорость это не повлияло. Все также,скорость записанного значительно выше скорости видео на экране Добавлено через 12 часов 2 минуты Решил проблему скорости.Возможно примитивно,но решение работает. Понимая,что не могу (или еще не умею) увеличить продолжительность воспроизведения каждого frame я решил просто увеличить количество одинаковых frame в каждом цикле.Т.е. в основном цикле создаю внутрений while в котором повторяется одна команда - cvWriteFrame(writer, frame); Количество итераций этого цикла и изменяет скорость записи-воспроизведения
0
|
|
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 30.05.2017, 22:53 | |
|
Должна быть настройка параметров записи и синхронизация на подобии в dx. Тут надо доки копать
0
|
|
| 30.05.2017, 22:53 | |
|
Помогаю со студенческими работами здесь
7
В VS 2015 не работает рекурсивная функция, которая работает в C++Builder Как функция работает,в обработчике не работает
Не работает функция Не работает функция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|