• 4425阅读
  • 0回复

如何实现真彩色BMP图像到灰度图像的转化? [复制链接]

上一主题 下一主题
离线forestxiehu
 

只看楼主 倒序阅读 楼主  发表于: 2006-07-13
如何实现真彩色BMP图像到灰度图像的转化?
向大侠请教: 我想实现真彩色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重新编辑 ]
快速回复
限100 字节
 
上一个 下一个