首页 新闻 搜索 专区 学院

求教高手一个转灰度图的问题

0
悬赏园豆:50 [已解决问题] 解决于 2013-12-16 16:39
        int i,j,k,sum;
        int width,height,dep;
        width=currentimage->width;
        height=currentimage->height;
        dep=currentimage->widthStep/currentimage->width;
        for (i=0;i<height;i++)
        {
            for (j=0;j<width;j++)
            {
                sum=0;
                for (k=0;k<dep;k++)
                {
                    //currentimage->imageData[i*currentimage->widthStep+dep*j+k]-=lastimage->imageData[i*currentimage->widthStep+dep*j+k];
                    sum+=currentimage->imageData[i*currentimage->widthStep+dep*j+k];
                }
                for (k=0;k<dep;k++)
                {
                    //currentimage->imageData[i*currentimage->widthStep+dep*j+k]-=lastimage->imageData[i*currentimage->widthStep+dep*j+k];
                    currentimage->imageData[i*currentimage->widthStep+dep*j+k]=(uchar)(sum/3);
                }
            }
        }

灰度图却有问题:

贫僧寂寞的主页 贫僧寂寞 | 初学一级 | 园豆:161
提问于:2013-12-16 16:12
< >
分享
最佳答案
0

找到问题了,嘻嘻

sum+=currentimage->imageData[i*currentimage->widthStep+dep*j+k];

currentimage->imageData是char*类型的,应该转化为uchar*

sum+=(uchar)currentimage->imageData[i*currentimage->widthStep+dep*j+k];

贫僧寂寞 | 初学一级 |园豆:161 | 2013-12-16 16:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册