qawaq 0 Жалоба Опубликовано December 17, 2011 Как подключить?visual studio 10 c++ Сразу скажу в этом ничего почти не понимаю. В консольной версии работает, а с формой нет даже если только подключить #include <highgui.h> и ничего больше не добавлять. Куча ошибок 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\opencv2/core/types_c.h(284): error C3862: cvRound: неуправляемую функцию невозможно компилировать с параметрами /clr:pure или /clr:safe 1> Встроенный машинный код на языке ассемблера в управляемом коде не поддерживается 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\opencv2/core/types_c.h(284): error C3645: cvRound: __clrcall невозможно использовать с функциями, скомпилированными в машинный код 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\opencv2/core/operations.hpp(78): error C3862: CV_XADD: неуправляемую функцию невозможно компилировать с параметрами /clr:pure или /clr:safe 1> Встроенный машинный код на языке ассемблера в управляемом коде не поддерживается 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\opencv2/core/operations.hpp(78): error C3645: CV_XADD: __clrcall невозможно использовать с функциями, скомпилированными в машинный код Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 Проблема решилась. Выбрал в свойствах проекта "Поддержка CLR среды(/clr)". Теперь другой вопрос... const char *filename = "D:\\capture.avi"; IplImage* img1 = cvLoadImage("D:\\11.jpg"); CvSize size = cvSize(img1->width, img1->height); double fps = 1; CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 0); assert(writer!=0); cvWriteFrame(writer, img1); cvReleaseVideoWriter(&writer); cvReleaseImage(&img1); Ругается на cvWriteFrame(writer, img1); Необработанное исключение типа "System.Runtime.InteropServices.SEHException" произошло в kurs Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 Волшебный форум.... только написал и нашёл решение.... CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 0); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 Терь новый вопрос))) Возможно ли сделать чтобы размер кадра изменялся в процессе записи? если я делаю запись активного окна с экрана, а в процессе записи меняю размер? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 18, 2011 Думаю в одном файле нельзя. Можно создать другой файл при изменении размера окна, a при воспроизведении показывать их последовательно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 В чём может быть проблема? Сначала screen(); делает скриншот актвиного окна и сохраняет на диск и сохраняет его const char *filename = "D:\\capture.avi"; screen(); IplImage* img1 = cvLoadImage("D:\\Test.bmp"); CvSize size = cvSize(img1->width,img1->height); double fps = 15; CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 1); assert(writer!=0); cvWriteFrame(writer, img1); cvReleaseVideoWriter(&writer); cvReleaseImage(&img1); в итоге должен получится ави файл с картинкой в нём. всё хорошо, но только есл разрешение у картинки больше 640 он вылетает с ошибкой.... если пробовать const char *filename = "D:\\capture.avi"; CvSize size = cvSize(1350,680); double fps = 15; CvVideoWriter *writer = cvCreateVideoWriter(filename, CV_FOURCC('X','V','I','D'), fps, size, 1); assert(writer!=0); cvReleaseVideoWriter(&writer); грубо говорря, созадли пустой ави файл. то максимальное разрешение с которым работает 1350,680 В чём говно? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 Вобщем милион впоросов и ниодного ответа((( Вот уменя идёт запись активного окна и всё хорошо, но захотел я выбрать дургое окно меньшего размера чем уменя размер видео файла, он вылетает с кучей ошибок((( Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 18, 2011 С выбором нового окна надо все закрыть, освободить память, выделенную под изображения, закрыть записывальщик видео. Затем все пересоздать и записывать в новый файл. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 Почему? ведь в видео файл сохраняется только картинка .бмп хранящаяся уже на диске? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qawaq 0 Жалоба Опубликовано December 18, 2011 всё) теперь не работает с разными окнами) Сначала создаю видео файл по размеру первого окна, затем каждый следующий кадр привожу к размерам первого с помощью cvResize и уже его записываю. Теперь уже новый вопрос))?? Как или с помощью каких функций на картинке найти определённый объект? елси есть допустим шаблон какаето сложная фигура, как её найти на картинке? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах