打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Bitmap与IplImage之间的转换
Bitmap转为iplimage代码
 
  1. IplImage* BitmapToIplImage(HBITMAP hBmp)  
  2. {   
  3.     BITMAP bmp;      
  4.       
  5.     GetObject(hBmp, sizeof(BITMAP), &bmp);  
  6.     int depth     (bmp.bmBitsPixel == 1IPL_DEPTH_1U IPL_DEPTH_8U;  
  7.     int nChannels (bmp.bmBitsPixel == 11 bmp.bmBitsPixel/8     
  8.       
  9.     IplImage* img cvCreateImage(cvSize(bmp.bmWidth,bmp.bmHeight), depth, nChannels);    
  10.       
  11.     BYTE *pBuffer new BYTE[bmp.bmHeight*bmp.bmWidth*nChannels];      
  12.     GetBitmapBits(hBmp, bmp.bmHeight*bmp.bmWidth*nChannels, pBuffer);  
  13.     memcpy(img->imageData, pBuffer, bmp.bmHeight*bmp.bmWidth*nChannels);     
  14.     delete pBuffer;  
  15.   
  16.     IplImage *dst cvCreateImage(cvGetSize(img), img->depth,3);      
  17.     cvCvtColor(img, dst, CV_BGRA2BGR);     
  18.     cvReleaseImage(&img);     
  19.     return dst;  
  20.  

 如果要从CBitmap转为IplImage,可以先将CBitmap转为BITMAP,再由BITMAP转为IplImage;

Cbitmap 转为 bitmap代码
 
  1. // CBitmap 转为 BITMAP  
  2. CBitmap bitmap;  
  3. bitmap.LoadBitmap(IDB_BITMAP);  
  4. BITMAP   bmp;  
  5. bitmap.GetBitmap(&bmp);  
  6.   
  7. // CBitmap与HBITMAP间的转换  
  8. // CBitmap转为HBITMAP  
  9. CBitmap bitmap;  
  10. bitmap.LoadBitmap(IDB_BITMAP);  
  11. HBITMAP bmp HBITMAP(bitmap);  
  12. // HBITMAP转为CBitmap  
  13. HBITMAP  hbitmap;    
  14. CBitmap   bitmap;  
  15. bitmap.Attach(hbitmap);  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
opencv-Win32下HBITMAP格式图像 Convert to为opencv下 IplImage
CBitmap和HBITMAP的区别及相互转换方法
图像缩放旋转
CreateCompatibleBitmap - fengqing888的日志 - 网易博...
关于CBitmap,LoadBitmap 的使用
窗口截图(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服