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

本文介绍了一种使用QImage进行图像灰度化的算法实现,通过将RGB三通道的值转化为单个灰度值,实现了从彩色图像到灰度图像的转换。此方法基于OpenCV的灰度转换原理,采用特定的权重公式计算平均灰度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

灰度化

由于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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值