Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Раскадровка видео через массив, Проблема с созданием массива 
V
    Опции темы
ValeryV
Дата 23.2.2017, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2016

Репутация: нет
Всего: нет



Написал простенькую программу - захват видео через 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[/color]


     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: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");
    }
PM MAIL   Вверх
ValeryV
Дата 24.2.2017, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2016

Репутация: нет
Всего: нет



Все,вопрос закрыт,разобрался. Ведь в массиве хранится не сам image,а лишь ссылка на него. Но создаваясь в цикле image нигде не сохраняется ! Т.е. я пытаюсь ссылаться на НЕСУЩЕСТВУЮШИЙ объект.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1074 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.