灰度阈值变换之c++实现(qt + 不调包)

    本章介绍灰度阈值变换的基本原理和实现方法,它用于产生二值图。

 

1.基本原理

    我觉得不用过多介绍,就是一个普通得不能再普通的二值化操作

灰度阈值变换之c++实现(qt + 不调包)_第1张图片

2.代码实现(代码是我以前自学图像处理时写的,代码很粗糙没做任何优化,但很好理解

    此代码中“origiin”一般为灰度图片,彩色图片转灰度图片,可参考我的一篇博客:彩色图转灰度图之c++实现(qt + 不调包)

/*灰度阈值变化函数*/
/*thr  为阈值*/
QImage* MainWindow::ThrTrans(QImage* origiin, int thr)
{
    QImage* newImage = new QImage(origiin->width(), origiin->height(), QImage::Format_ARGB32);

    QColor oldColor;
    int r, g, b;
    for(int y = 0; y < newImage->height(); y++)
    {
        for(int x = 0; x < newImage->width(); x++)
        {
             oldColor = QColor(origiin->pixel(x,y));
             if(oldColor.red() >= thr)
                 r = 255;
             else
                 r = 0;
             if(oldColor.green() >= thr)
                 g = 255;
             else
                 g = 0;
             if(oldColor.blue()>= thr)
                 b = 255;
             else
                 b = 0;
             newImage->setPixel(x, y, qRgb(r, g, b));
        }
    }
    return newImage;
}

3.参考资料

    数字图像处理——技术详解与Visual C++实践(左飞等著),写代码与写博客的时间相差两年,至于还参考其他的资料不,我已经忘记了,如若需要,我可以补上去

你可能感兴趣的:(基于qt图像算法处理,c++,qt,数据库)