Я вообще работаю только через ТВ тюнеры и камеры высокого расширения. Хочеш - прикрути звук и создай свой рекодер тв сигнала в ави.
Хотел бы получить рускоязычный хелп по OPENCV. пришлите пжалста мне на мыло imbpp(собака)рамблер.ру
roboforum.ruТехнический форум по робототехнике. |
|
|
Николай_Алексеевич писал(а):Я вообще работаю только через ТВ тюнеры и камеры высокого расширения.
// обработка нажатия кнопки
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
?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4