|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.02.2017, 21:04 | #1 |
Регистрация: 06.05.2016
Сообщений: 4
|
Раскадровка видео через массив
Написал простенькую программу - захват видео через OpenCV и его воспроизведение на pictureBox1.Программа работает отлично.
Пытаюсь сделать раскадровку - создаю массив и каждый кадр в цикле завожу в него. Пробую извлечь конкретный кадр из массива в pictureBox2 - изображение не получаю.Какая-то информация в элементе массива есть - pictureBox2 меняет цвет - но конкретной картинки конкретного кадра нет.Если вместо заведения кадра в массив использую SAVE в файл - кадр записывается и отображается,а через массив не хочет.Может кто подскажет в чем проблема или ошибка.Привожу код: c++ #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\\danc e.mpg"); while(true){ if(Pause!=true) { // получаем следующий кадр frame = cvQueryFrame( capture ); if( !frame ) { break; } myBitmap = gcnew System:rawing::Bitmap(frame->width,frame->height,frame->widthStep, System:rawing::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"); } Последний раз редактировалось ValeryV; 23.02.2017 в 21:59. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Смена потока видео через Javascript | Maxjuvefan | JavaScript, Ajax | 0 | 15.12.2016 15:24 |
Глюки TWebBrowser и видео через YouTube | stealth7 | Компоненты Delphi | 7 | 18.11.2016 12:57 |
Раскадровка и закадровка видео формата AVI | ruN00b | Мультимедиа в Delphi | 17 | 24.05.2013 07:42 |
Получать видео через сокет. | Aleksandr | Работа с сетью в Delphi | 3 | 30.04.2013 16:08 |
надо сделать дек через массив и через список. | CHUCKe | Помощь студентам | 4 | 20.11.2010 17:23 |