MFC中HBITMAP如何转化成opencv的IplImage格式呢?最好能有详细的代码 MFC中通过Directshow打开的视频,想通过opencv对图像处理一下,但是不知道如何将MFC中的HBITMAP转换成IplImage呢。求各位大侠指点啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HBITMAP CImageProcess::IplImage2hBitmap(IplImage * pImg){ BYTE tmp[sizeof(BITMAPINFO) + 1024]; BITMAPINFO *bmi = (BITMAPINFO *)tmp; HBITMAP hBmp; memset(bmi, 0, sizeof(BITMAPINFO)); bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmi->bmiHeader.biWidth = pImg->width; bmi->bmiHeader.biHeight = pImg->height; bmi->bmiHeader.biPlanes = 1; bmi->bmiHeader.biBitCount = pImg->nChannels * pImg->depth; bmi->bmiHeader.biCompression = BI_RGB; bmi->bmiHeader.biSizeImage = 0; //if biCompression is BI_RGB, this can be 0 bmi->bmiHeader.biClrImportant = 0; switch (pImg->nChannels * pImg->depth) { case 8: for (int i=0; i<256; i++) { bmi->bmiColors[i].rgbBlue = i; bmi->bmiColors[i].rgbGreen = i; bmi->bmiColors[i].rgbRed = i; } break; case 32: case 24: ((DWORD *)bmi->bmiColors)[0] = 0x00FF0000; ((DWORD *)bmi->bmiColors)[1] = 0x0000FF00; ((DWORD *)bmi->bmiColors)[2] = 0x000000FF; break; } hBmp = ::CreateDIBSection(NULL, bmi, DIB_RGB_COLORS, NULL, 0, 0); SetDIBits(NULL, hBmp, 0, pImg->height, pImg->imageData, bmi, DIB_RGB_COLORS); return hBmp;} mfc 如何设置主对话框,在线等 为什么会报错呢!!!!!! dll注入以后直接显示对话框 用directshow 开发的播放程序。有没有什么好的方案将几个WAV文件合成一个文件,或者连续播放啊 简单问题 既然NEW可以得到申請到需要的內存,那還用VIRTUALALLOC()去申請作什麼呢? 当程序等待的时候如何使界面上的鼠标形状变为漏斗形? 高分向高手求助(100分) 刚学数据结构,创建了个线性链表怎么总有问题? vs2013 串口发送双精度数组问题? 以CPropertySheet为基类的类中的以CPropertyPage为基类的类的成员变量相互访问
{
BYTE tmp[sizeof(BITMAPINFO) + 1024];
BITMAPINFO *bmi = (BITMAPINFO *)tmp;
HBITMAP hBmp;
memset(bmi, 0, sizeof(BITMAPINFO));
bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi->bmiHeader.biWidth = pImg->width;
bmi->bmiHeader.biHeight = pImg->height;
bmi->bmiHeader.biPlanes = 1;
bmi->bmiHeader.biBitCount = pImg->nChannels * pImg->depth;
bmi->bmiHeader.biCompression = BI_RGB;
bmi->bmiHeader.biSizeImage = 0; //if biCompression is BI_RGB, this can be 0
bmi->bmiHeader.biClrImportant = 0; switch (pImg->nChannels * pImg->depth)
{
case 8:
for (int i=0; i<256; i++)
{
bmi->bmiColors[i].rgbBlue = i;
bmi->bmiColors[i].rgbGreen = i;
bmi->bmiColors[i].rgbRed = i;
}
break;
case 32:
case 24:
((DWORD *)bmi->bmiColors)[0] = 0x00FF0000;
((DWORD *)bmi->bmiColors)[1] = 0x0000FF00;
((DWORD *)bmi->bmiColors)[2] = 0x000000FF;
break;
}
hBmp = ::CreateDIBSection(NULL, bmi, DIB_RGB_COLORS, NULL, 0, 0);
SetDIBits(NULL, hBmp, 0, pImg->height, pImg->imageData, bmi, DIB_RGB_COLORS);
return hBmp;
}