roboforum.ru

Технический форум по робототехнике.


Работа с OpenCV

Re: Работа с OpenCV

Сообщение Николай_Алексеевич » 29 ноя 2007, 12:49

Я вообще работаю только через ТВ тюнеры и камеры высокого расширения. Хочеш - прикрути звук и создай свой рекодер тв сигнала в ави.

Хотел бы получить рускоязычный хелп по OPENCV. пришлите пжалста мне на мыло imbpp(собака)рамблер.ру
Николай_Алексеевич
 
Сообщения: 44
Зарегистрирован: 11 дек 2006, 17:18
Откуда: Тольятти

Re: Работа с OpenCV

Сообщение =DeaD= » 29 ноя 2007, 13:34

Николай_Алексеевич писал(а):Я вообще работаю только через ТВ тюнеры и камеры высокого расширения.

А как вы делаете, чтобы ТВ-тюнер брал нужный вам источник сигнала?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Работа с OpenCV

Сообщение Виталий » 30 ноя 2007, 12:49

Подскажите хорошую камеру высокого разрешения.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Работа с OpenCV

Сообщение fergie » 30 ноя 2007, 19:08

Николай Алексеевич, а можно по-подробние... Какой тюнер вы используете (фирма, модель, программное обеспечение) и какую версию OpenCV?
Да и вообще, различается ли листинг захвата видео с веб-камеры и с TV? Последовательность действий если можно, начиная с того момента как вы включили компьютер и до просмотра изображения тоже напишите...
Насчет русского хелпа, то пока там все разбросано по кускам... вот кое-что кидаю, если качество перевода устроет, то докину остальное...

Dead, как вы смотрели телефизор? Сразу было открыто обеспечение тюнера и выполнялся захват через OpenCV? У меня при включенном обеспечении тюнера, захват через OpenCV не получаеться, так как камера уже занята обеспечением тюнера... :( Или все таки как то по-другому?
Да и идеи наши полностью совпали наверное... тоже камеру на робота и через ресивер... так что надеюсь на дальнейшее содействие :D
fergie
 
Сообщения: 9
Зарегистрирован: 26 ноя 2007, 14:03

Re: Работа с OpenCV

Сообщение Evil » 16 июн 2008, 16:13

Добрый день. В opencv для вывода изображений используются функции создания окна cvNamedWindow и вывода cvShowImage.
Каким образом в vc++ можно выводить изображения IplImage сразу в форму или в компонент?
Evil
 
Сообщения: 3
Зарегистрирован: 16 июн 2008, 16:00

Re: Работа с OpenCV

Сообщение =DeaD= » 16 июн 2008, 16:33

Скорее всего самый простой выход - написать функцию самому, мне понадобилось порядка получаса на это под Borland C++ Builder.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Работа с OpenCV

Сообщение Evil » 16 июн 2008, 17:38

я сейчас этим и занимаюсь, правда плохо знаю vc++, помогите..
Код: Выделить всёРазвернуть
// обработка нажатия кнопки
void CVcOpenCVDlg::OnOK()
{
   HWND hSingle = GetSafeHwnd();
   CWinThread* PWinThread;
   PWinThread = AfxBeginThread(Tread, hSingle, THREAD_PRIORITY_NORMAL, 0, 0 , NULL );
}

HBITMAP IplImage2DIB(IplImage *Image)
{
   int bpp = Image->nChannels * 8;
        assert(Image->width >= 0 && Image->height >= 0 &&
                (bpp == 8 || bpp == 24 || bpp == 32));
        CvMat dst;
        void* dst_ptr = 0;
        HBITMAP hbmp = NULL;
        unsigned char buffer[sizeof(BITMAPINFO) + 255*sizeof(RGBQUAD)];
        BITMAPINFO* bmi = (BITMAPINFO*)buffer;
        BITMAPINFOHEADER* bmih = &(bmi->bmiHeader);
       
        ZeroMemory(bmih, sizeof(BITMAPINFOHEADER));
        bmih->biSize = sizeof(BITMAPINFOHEADER);
        bmih->biWidth = Image->width;
        bmih->biHeight = Image->origin ? abs(Image->height) :
        -abs(Image->height);
        bmih->biPlanes = 1;
        bmih->biBitCount = bpp;
        bmih->biCompression = BI_RGB;
       
        if (bpp == 8) {
                RGBQUAD* palette = bmi->bmiColors;
                int i;
                for (i = 0; i < 256; i++) {
                        palette[i].rgbRed = palette[i].rgbGreen = palette[i].rgbBlue
                                = (BYTE)i;
                        palette[i].rgbReserved = 0;
                }
        }
       
        hbmp = CreateDIBSection(NULL, bmi, DIB_RGB_COLORS, &dst_ptr, 0, 0);
        cvInitMatHeader(&dst, Image->height, Image->width, CV_8UC3,
                dst_ptr, (Image->width * Image->nChannels + 3) & -4);
        cvConvertImage(Image, &dst, Image->origin ? CV_CVTIMG_FLIP : 0);
       
        return hbmp;   
}
// второй поток
UINT Tread(LPVOID pParam)
{
   CvCapture* capture = 0;
   IplImage* Image = 0;
   capture = cvCaptureFromCAM(0);
   for(;;)
   {
      if (!cvGrabFrame(capture))
            break;   
            
            Image = cvRetrieveFrame(capture);
         cvFlip(Image,Image,0);
         HBITMAP hbitmap = IplImage2DIB(Image);
         CVcOpenCVDlg::m_Image.SetBitmap(hbitmap); // m_Image - CStatic
      
      if(cvWaitKey(10) >= 0)
         break;   
   }
   cvReleaseCapture(&capture);
   return 0;
}
error C2228: left of '.SetBitmap' must have class/struct/union type
?
Evil
 
Сообщения: 3
Зарегистрирован: 16 июн 2008, 16:00

Пред.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5