CBitmap载入IDB 4通道向3通道转化 IplImage
来源:互联网 发布:淘宝代写代码 编辑:程序博客网 时间:2024/06/06 07:04
CBitmap Bmp;//载入位图
Bmp.LoadBitmap(IDB_BITMAP_BK_IMG);
HBITMAP hBmp = HBITMAP(Bmp);//将CBitmap转换为HBITMAP
BITMAP bmp;
Bmp.GetBitmap(&bmp);//获得位图信息
int depth,nChannels;
if(bmp.bmBitsPixel==1)//得到图像深度和通道数
{depth=IPL_DEPTH_1U; nChannels=1;
} else {
depth=IPL_DEPTH_8U;
nChannels=bmp.bmBitsPixel/8;
}
IplImage* m_load_image = cvCreateImage(cvSize(bmp.bmWidth,bmp.bmHeight), depth, nChannels); //创建图像
BYTE *pBuffer = new BYTE[bmp.bmHeight*bmp.bmWidth*nChannels]; //创建缓冲区
GetBitmapBits(hBmp, bmp.bmHeight*bmp.bmWidth*nChannels, pBuffer); //将位图信息复制到缓冲区
memcpy(m_load_image->imageData, pBuffer, bmp.bmHeight*bmp.bmWidth*nChannels);//将缓冲区信息复制给IplImage
int destimgSize;
destimgSize = m_load_image->height*m_load_image->width*3;
int srcImgTotalSize;
srcImgTotalSize = m_load_image->widthStep*m_load_image->height;
char * buffer = new char[destimgSize];//用于存储处理后的图片数据
IplImage* m_bk_image = cvCreateImage(cvGetSize(m_load_image),IPL_DEPTH_8U,3);
int destCout=0;
char * pSrcData = m_load_image->imageData;
for (int i=1;i<=srcImgTotalSize;i++)
{
if (i%4 == 0)
{
continue;
}
buffer[destCout] = *(pSrcData + i-1);
destCout++;
}
m_bk_image->imageData = buffer;
- CBitmap载入IDB 4通道向3通道转化 IplImage
- opencv IplImage* 3通道转4通道
- IplImage 4通道转3通道
- iplimage CBitmap 转化
- 通道
- 通道
- 通道
- 通道
- Opencv基础:图像(IplImage)深度与通道
- opencv 4通道转换成三通道
- Java NIO 3:通道和文件通道
- 三通道图像转化为三通道,并将多通道图像混合
- 4通道方波发生器
- NIO(JDK1.4)--通道
- IplImage的使用 从三通道图中分离出三个单通道
- OpenCV Learning: IplImage三个单通道与单个通道的转换
- IplImage的使用 从三通道图中分离出三个单通道
- 3通道滤波
- 后台代码
- hive数据倾斜总结
- UIImageView 的contentMode属性应用
- Mysql 新增用户
- 关于onNewIntent()
- CBitmap载入IDB 4通道向3通道转化 IplImage
- 20131219孤独者之旅11
- 工作笔记
- 检查目标类的全部方法信息
- ExtJs获取文本框中值的几种方式
- 文件系统NSFileManager常用用法
- Java删除文件夹 及目录下 文件 递归操作
- blast++
- 银行如何应对来自内部的网络安全风险