RGB转换为灰度vc代码
来源:互联网 发布:霍建华胡歌 知乎 编辑:程序博客网 时间:2024/05/18 03:40
vc图像处理中经常要进行颜色空间的转换,因为摄像头采集的图像格式通常是RGB24或RGB32的,而大多数算法通常是适用于灰度图的,如人脸检测,边缘提取等,因此需要进行RGB到灰度图的转换。
下面是转换为灰度图的vc函数代码,注意通常RGB图像存放顺序是BGR格式的:
程序代码
下面是转换为灰度图的vc函数代码,注意通常RGB图像存放顺序是BGR格式的:
程序代码
BOOL RGBToGray(BYTE *pData,int iWidth,int iHeight,int iDepth)
{
BYTE red,green,blue;
BYTE grey;
if(iDepth != 3 && iDepth != 4)
{
return FALSE;
}
for(int j=0;j < iHeight;j++)
{
for(int i=0;i < iWidth;i++)
{
blue = *(pData + j*iWidth*iDepth+i*iDepth);
green = *(pData + j*iWidth*iDepth+i*iDepth + 1);
red = *(pData + j*iWidth*iDepth+i*iDepth + 2);
grey = (BYTE)((float)(red*0.299+green*0.587+blue*0.114));
*(pData + j*iWidth*iDepth+i*iDepth) = grey;
*(pData + j*iWidth*iDepth+i*iDepth + 1) = grey;
*(pData + j*iWidth*iDepth+i*iDepth + 2) = grey;
}
}
return TRUE;
}
{
BYTE red,green,blue;
BYTE grey;
if(iDepth != 3 && iDepth != 4)
{
return FALSE;
}
for(int j=0;j < iHeight;j++)
{
for(int i=0;i < iWidth;i++)
{
blue = *(pData + j*iWidth*iDepth+i*iDepth);
green = *(pData + j*iWidth*iDepth+i*iDepth + 1);
red = *(pData + j*iWidth*iDepth+i*iDepth + 2);
grey = (BYTE)((float)(red*0.299+green*0.587+blue*0.114));
*(pData + j*iWidth*iDepth+i*iDepth) = grey;
*(pData + j*iWidth*iDepth+i*iDepth + 1) = grey;
*(pData + j*iWidth*iDepth+i*iDepth + 2) = grey;
}
}
return TRUE;
}
- RGB转换为灰度vc代码
- RGB转换为灰度vc代码
- RGB转换为HSV的VC++代码
- RGB转换为HSV的VC++代码
- RGB图片转换为灰度图批处理
- 将RGB值转换为灰度值的简单算法
- 将RGB值转换为灰度值的简单算法
- C#将RGB图像转换为8位灰度图像
- Android-将RGB彩色图转换为灰度图
- C#将RGB图像转换为8位灰度图像
- OpenCV 原始RGB图像转换为灰度图像
- 毕业课题---RGB图像转换为灰度图
- C#将RGB图像转换为8位灰度图像
- Android-将RGB彩色图转换为灰度图
- vc将彩色图像转换为灰度图像
- OpenCV笔记之一:将RGB视频转换为灰度输出并在窗口显示
- -01-RGB彩色图像转换为灰度图像【ARM NEON加速】
- [转] RGB到HSV转换的vc代码
- JQuery.Ajax之错误调试帮助信息
- C语言指针并不难
- Linux操作系统的安全模块要点分析
- 原来我也可以看懂
- file_operations
- RGB转换为灰度vc代码
- 通过派生CEdit类实现在VC的edit控件里输入小数
- Android中组装xml文件内容
- 飞漫魏永明:从MiniGUI看嵌入式十年得与失
- __attribute__详解
- Linux 命令返回值
- excel导出
- C++ const 的学问
- 行动胜于一切谎言