1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62

Раскадровка видео через массив

23.02.2017, 16:23. Показов 1328. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал простенькую программу - захват видео через OpenCV и его воспроизведение на pictureBox1.
Пытаюсь сделать раскадровку - создаю массив и каждый кадр в цикле завожу в него. Пробую извлечь конкретный кадр из массива в pictureBox2 - изображение не получаю.Какая-то информация в элементе массива есть - pictureBox2 меняет цвет - но конкретной картинки конкретного кадра нет.Если вместо заведения кадра в массив использую SAVE в файл - кадр записывается и отображается,а через массив не хочет.Может кто подскажет в чем проблема или ошибка.Привожу код:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
     #pragma endregion
        
        array<Image^>^img;
        
        Bitmap^myBitmap;
           bool Pause;
    
         int i;
     private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                
             img=gcnew array<Image^>(625);// определяю как i+1
            
                 
                 CvCapture* capture;
    
      cvNamedWindow("original",CV_WINDOW_AUTOSIZE);
     
        capture = cvCreateFileCapture( "C:\\Users\\валера\\Downloads\\dance.mpg");
     
     
     while(true){
               
          if(Pause!=true)
          {
           // получаем следующий кадр
             
              frame = cvQueryFrame( capture ); 
                if( !frame ) {
                  
                    break;
              
                }
                 myBitmap = gcnew System::Drawing::Bitmap(frame->width,frame->height,frame->widthStep,                    System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr)frame->imageData);  
                   pictureBox1->Image = myBitmap;
             img[i]= pictureBox1->Image;
           
             
             label2->Text = i.ToString(); // показываю количество кадров  
        //if(i==3)
        //{
           // pictureBox1->Image->Save( "C:\\MyPics\\image11.bmp" );
        //}
            i++;
        
          
          }
                
                
                char c = cvWaitKey(40);
                if (c == 27) { // если нажата ESC - выходим
                        break;
                }
        }
      
     cvReleaseCapture( &capture );
       
       
       cvDestroyWindow("original");
             }
 
 
     private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
             Pause=!Pause;
         }
     private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
            
             pictureBox2->Image=img[3];// выбираю произвольный индекс из массива,который хочу отобразить
            
             
             //pictureBox2->Image=Image::FromFile("C:\\MyPics\\image11.bmp");
         }
 
};
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2017, 16:23
Ответы с готовыми решениями:

Работа с видео на youtube, нужен массив [ссылка на видео, название видео]
Собственно с одной стороны есть экселевский документ с номерами, с другой стороны канал на ютубе. Задача прочитать все названия видео на...

Потоковое видео через роутер, не могу смотреть потоковое видео на телефоне через Wi-Fi
Доброго времени суток, форумчане. У меня возникла следующая проблема: не могу смотреть потоковое видео на телефоне через вай-фай. В...

Притормаживание 3D приложений: раскадровка, медленно и по кадрам.
Такая проблема. В 3D приложениях при работе наблюдается следующее: сначала работает всё гладко, а временами подтормаживает изображение:...

1
1 / 1 / 0
Регистрация: 28.04.2015
Сообщений: 62
24.02.2017, 19:36  [ТС]
Все,вопрос закрыт,разобрался. Ведь в массиве хранится не сам image,а лишь ссылка на него. Но создаваясь в цикле image нигде не сохраняется ! Т.е. я пытаюсь ссылаться на НЕСУЩЕСТВУЮШИЙ объект.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2017, 19:36
Помогаю со студенческими работами здесь

Вывод видео в разделе каталога через код видео youtub
Здравствуйте! Существует каталога, в нем разделы, в разделах элементы. В описании раздела есть текстслева и картинки в правой колонке....

Замедление видео при воспроизведении видео через HDMI
Суть. уже больше года телевизор подключен к компу в качестве доп. моника для просмотра фильмов, все было отлично, но недавно я попробовал...

Конкурс "Раскадровка"
Конкурс &quot;Раскадровка&quot; Внимание, любители кино! Мы начинаем конкурс «Раскадровка»! 1. Участие в конкурсе: могут принимать (а...

Видео через СМС
Всем привет,скажите,как сделать на сайте платный доступ к видео? Хостинг есть. и что случилось с форумом?теперь чтобы прочесть тему...

Видео в Html через swf
Здравствуйте, подскажите, пожалуйста, как мне запускать видео на лок сайте через какой-то swf проигрыватель, (желательно конкретный пример)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru