Qt之 图像处理(二)灰度化

灰度化

由于QImage的图像不管怎么样都是三通道的图像数据,所以灰度化就把QImage的三个颜色设置成一样就相当于OpenCV中的单通道图像。

QImage* MainWindow::greyScale(QImage * origin)
{
    QImage * newImage = new QImage(origin->width(), origin->height(), QImage::Format_ARGB32);


    for(int y = 0; y<newImage->height(); y++){
        //获取一行像素的首地址
        QRgb * line = (QRgb *)origin->scanLine(y);

        for(int x = 0; x<newImage->width(); x++){
            //提取像素
            //灰度转换的一种方法(R G B 求平均值)
            int average = (qRed(line[x])*0.299 + qGreen(line[x])*0.587 + qBlue(line[x])*0.114);
            newImage->setPixel(x,y, qRgb(average, average, average));
        }

    }

    return newImage;
}
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值