CImage 获取HBITMAP句柄与HBITMAP转IplImage
来源:互联网 发布:淘宝上买电棍怎么搜索 编辑:程序博客网 时间:2024/06/11 05:19
CImage 获取HBITMAP句柄:
#include <atlimage.h>char *fImgPath=" img path";CString fimgp=fImgPath;CImage fcimage;fcimage.Load(fimgp);HBITMAP fhandle = fcimage.Detach();HBITMAP转IplImage
IplImage* hBitmapToIpl(HBITMAP hBmp) { BITMAP bmp; GetObject(hBmp,sizeof(BITMAP),&bmp); // get channels which equal 1 2 3 or 4 // bmBitsPixel : // Specifies the number of bits // required to indicate the color of a pixel. int nChannels = bmp.bmBitsPixel == 1 ? 1 : bmp.bmBitsPixel/8 ; // get depth color bitmap or grayscale int depth = bmp.bmBitsPixel == 1 ? IPL_DEPTH_1U : IPL_DEPTH_8U; // create header image IplImage* img = cvCreateImage(cvSize(bmp.bmWidth,bmp.bmHeight),depth,nChannels); // allocat memory for the pBuffer BYTE *pBuffer = new BYTE[bmp.bmHeight*bmp.bmWidth*nChannels]; // copies the bitmap bits of a specified device-dependent bitmap into a buffer GetBitmapBits(hBmp,bmp.bmHeight*bmp.bmWidth*nChannels,pBuffer); // copy data to the imagedata memcpy(img->imageData,pBuffer,bmp.bmHeight*bmp.bmWidth*nChannels); delete pBuffer; // create the image IplImage *dst = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); //cvCvtColor(img, dst, CV_RGB2GRAY);// convert color if (img->nChannels==3){cvCvtColor(img,img,CV_BGRA2BGR);}//cvReleaseImage(&img); return img; }
网上所找代码基本都是:
- // create the image
- IplImage *dst = cvCreateImage(cvGetSize(img),img->depth,3);
- // convert color
- cvCvtColor(img,dst,CV_BGRA2BGR);
- cvReleaseImage(&img);
- return dst;
但是这样的话当待读取图片是单通道灰度图时会报错。
1 0
- CImage 获取HBITMAP句柄与HBITMAP转IplImage
- HBITMAP
- HBITMAP位图句柄转换图像
- 得到HBITMAP句柄保存位图
- Memory DC 与hBitmap
- CBitmap 与 HBITMAP
- HICON与HBITMAP互换
- HICON与HBITMAP相互转换
- HBITMAP 与 CBitmap 、BITMAP、HDIB
- HICON与HBITMAP相互转换
- gdi+ Bitmap 与CBitmap HBITMAP
- HICON与HBITMAP相互转换
- CBitmap与HBITMAP的转换
- HICON与HBITMAP相互转换
- HBITMAP 与 CBitmap 、BITMAP、HDIB
- HICON与HBITMAP相互转换
- HBITMAP与BITMAP 的区别
- IplImage CBitmap HBITMAP BITMAP之间的相互转换
- base64 压缩传送和非压缩传送
- 计算机科学与技术是一门实用性
- WP8页面跳转传值方法总结
- 正则化、归一化含义解析
- PowerDesigner使用手册(备忘)
- CImage 获取HBITMAP句柄与HBITMAP转IplImage
- 研究计算机基本理论的学科
- C语言学习之基础学习01
- 程序设计者所见的计算机属性
- 23种设计模式(9):访问者模式
- linux下svn创建版本库/导入/导出
- aws ec2服务上建立网站
- 九度 1493:公约数
- 如何在PL/SQL中修改ORACLE的字段顺序