向大侠请教: 我想实现真彩色BMP图像到灰度图像的转化,找了一段代码但是结果很差,其灰度转换部分代码如下:
void MainWIdget::imageGrayscale()
{
if(!image)
return;
uchar *p;
for(int i=o; i<(image->height());i++)
{
for(int j=0;j<(image->width());j+4=4)
{
p=(char *)(image->scanline(i)+j);
uchar v=(p[1]+p[2]+p[3])/3;
p[1]=p[2]=p[3]=v;
}
}
showImage(); //显示输出图像
}
这段代码输出图像很模糊,开始我以为是这个平均值公式不精确导致,但试用了RGB转换的其它公式,效果也
一样,查了不少地方,也没有相关的代码,那为大侠有类似的代码能提供出来共享共享!
[ 此贴被XChinux在2006-07-13 19:57重新编辑 ]