【QT数字图像处理】(二)彩色图像转换为灰度图

标准的灰度图就是每个像素点的3个通道的值一样或相近,我们的策略就是要将每个像素的每个通道的值调成一样,取RGB值三者的算数平均数即可。比如原色是RGB(169, 204, 69),最终的RGB值就是(169+204+69)/3 = 147。

关键代码:

void MainWindow::Img_gray(){
    qDebug()<<"Img_gray"<<endl;
    QImage* origin = new QImage("mydog.jpg");
    QImage* newImage = new QImage(origin->width(), origin->height(), origin->format());
    for(int i=0; i<origin->width(); i++){
        for(int j=0; j<origin->height(); j++){
            QRgb pixel = origin->pixel(i, j);
            int r = qRed(pixel);
            int g = qGreen(pixel);
            int b = qBlue(pixel);
            int average = (r+g+b)/3;
            newImage->setPixel(i, j, qRgb(average, average, average));
        }
    }
    imgLabel->setPixmap(QPixmap::fromImage(*newImage));
    imgLabel->resize(newImage->width(), newImage->height());
}

原图:
【QT数字图像处理】(二)彩色图像转换为灰度图_第1张图片
灰度图:
【QT数字图像处理】(二)彩色图像转换为灰度图_第2张图片

你可能感兴趣的:(QT数字图像处理,qt)