понедельник, 25 июня 2012 г.

OpenCV преобразование QImage в IplImage

IplImage * MainWindow::QImage2IplImage(const QImage * image)
{
  IplImage * cvImage = cvCreateImageHeader(cvSize(image->width(), 
   image->height()), IPL_DEPTH_8U, 4);

  cvImage->imageData = (char*)image->bits();  
  IplImage* colorImage = cvCreateImage(cvGetSize(cvImage), 8, 3);
  cvConvertImage(cvImage, colorImage, 0);
  return colorImage;
}

OpenCV создание avi файла из набора кадров

#include <opencv2/opencv.hpp>
void MainWindow::test()
{
  double fps = 5.;
  CvSize size = cvSize(219, 187);//Размер картинки
  CvVideoWriter *writer = cvCreateVideoWriter( // Создаём файл для записи
    "out.avi",
    //CV_FOURCC('M','J','P','G'),
    //CV_FOURCC('X','V','I','D'),
    //CV_FOURCC('D','I','V','X'),
    CV_FOURCC('F','L','V','1'),
    fps,
    size
  );
  
  IplImage* img = cvLoadImage("Image0.jpg");
  const int frameCount = 100;
  int c = 0;
  while (c++, c != frameCount)
  { 
   cvWriteFrame(writer, img ); // Записываем
  }
  cvReleaseVideoWriter( &writer ); // Освобождаем ресурсы
  cvReleaseImage( &img );
}

OpenCV подключение в проект Qt

Скачиваем OpenCV OpenCV-2.4.1.exe
Распаковываем
Правим pro файл
# OpenCV
OPENCV = D:/opencv
OPENCV_LIB = $$OPENCV/build/x86/vc9/lib
INCLUDEPATH += $$OPENCV/build/include/opencv $$OPENCV/build/include
QMAKE_LIBDIR += $$OPENCV_LIB
CONFIG(debug, debug|release) {
  LIBS += $$files($$OPENCV_LIB/*241d.lib)
} else {
  LIBS += $$files($$OPENCV_LIB/*241.lib)
}