我想实现一个从RGB彩色图像转为黑白的灰度图像C++图像处理程序,现在我有程序了,但不知道如何添加,
voidImageGrayScale(BYTE*pImageData,intImageWidth,intImageHeight){}就是这类函数,以前经常用的是MFC中添...
void ImageGrayScale(BYTE *pImageData, int ImageWidth, int ImageHeight)
{
}就是这类函数,以前经常用的是MFC中添加消息处理函数,这样的函数不知道如何添加,还要重新定义类吗?我试了好多次还是不行,求大哥大姐们指导下 展开
{
}就是这类函数,以前经常用的是MFC中添加消息处理函数,这样的函数不知道如何添加,还要重新定义类吗?我试了好多次还是不行,求大哥大姐们指导下 展开
更多追问追答
追问
你貌似没有回答我的问题,你这个界面做的不错?但我不会添加那样的函数能帮我下吗?谢谢啦!
追答
void ImageGrayScale(BYTE *pImageData, int ImageWidth, int ImageHeight)
{ / /RGB图像文件 图像的宽 图像的高
BYTE *Src = pImageData; //变量赋值
int x, y; //用于宽和高的循环
BYTE color = 0; //色值初始化
for(y=0; y<ImageHeight; y++) //循环图像的高
{
for(x=0; x<ImageWidth; x++) //循环图像的宽
{
color = (BYTE)RGB2GRAY(*(Src+2),*(Src+1),*Src);
// 通过 RGB2GRAY 经彩色值,算出灰度值。
// RGB2GRAY 的参数,因为图像颜色是RGB并列排放,
// 所以读取的时候,要 Src+2、Src+1和Src
*Src++ = color; //将算出的灰度值,写回到 R
*Src++ = color; //将算出的灰度值,写回到 G
*Src++ = color; //将算出的灰度值,写回到 B
}
Src += (4-(ImageWidth*3)%4);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好高深啊,表示只会直接在PS里运用。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询