• 大小: 1.12MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-26
  • 语言: 其他
  • 标签: Qt  

资源简介

使用QT编程实现图像的灰度处理、柱状图拉升、CLAHE算法等

资源截图

代码片段和文件信息

#include “imagewidget.h“
#include 
ImageWidget::ImageWidget(QWidget* parent):QWidget(parent)
{
    QDesktopWidget desktop;
    pixmap=QImage(desktop.width()desktop.height()QImage::Format_Indexed8);
    scale=1;
    angle=0;
    bFit=true;
    biasx=0;
    biasy=0;
}
void ImageWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    if(angle)
    {
        QPointF center(this->width()/2.0this->height()/2.0);
        painter.translate(center);
        painter.rotate(angle);
        painter.translate(-center);
    }
    if(bFit)
    {
        QImage fitmap=pixmap.scaled(width()height()Qt::KeepAspectRatio);
        painter.drawImage(biasxbiasyfitmap);

    }
    else
    {
        painter.drawImage(biasxbiasypixmap);
    }
}
void ImageWidget::setPixmap(QString fileName)
{
    pixmap.load(fileName);
    update();
}
QImage ImageWidget::getPixmap()
{
    return pixmap;
}
void ImageWidget::setAngle(qreal rotateAngle)
{
    angle +=rotateAngle;
    update();
}
/*void ImageWidget::changeImageToGray()//方法一
{
    QSize size=pixmap.size();
    int w=size.rwidth();
    int h=size.rheight();
    uchar* firstPP=pixmap.bits();
    QImage grayImg=QImage(sizeQImage::Format_Indexed8);
    uchar* firstDP=grayImg.bits();
      for(int i=0;i        for(int j=0;j        {
            *firstDP=*(firstPP+1);
            firstPP+=4;
            firstDP++;
        }

    QVector grayColorTable;
    QRgb rgb;
    for(int i = 0; i < 256; i++)
    {
     rgb=qRgb(iii);
     grayColorTable.append(rgb);
    }
    grayImg.setColorTable(grayColorTable);
    grayImg.save(“grayImg.bmp““bmp“);
}*/
void ImageWidget::changeImageToGray()//方法二最好的方法,我设计的
{
    int depth=pixmap.depth();
    int h=pixmap.height();
    int w=pixmap.width();
    QImage grayImg=QImage(whQImage::Format_Indexed8);
    uint firstDP;
    grayImg.setColorCount(256);
    QRgb rgb;
    for(int i = 0; i < 256; i++)
    {
     rgb=qRgb(iii);

     grayImg.setColor(irgb);
    }
    QRgb px;
     if(depth==32)
    {
        for(int i=0;i            for(int j=0;j            {
                px=pixmap.pixel(ij);
               firstDP=(uint)(qRed(px)*30 +qGreen(px)*59 + qBlue(px)*11 + 50) / 100;
                grayImg.setPixel(ijfirstDP);
            }
        grayImg.save(“grayImg.bmp““bmp“);
        pixmap=grayImg;
        this->update();
    }
     else if((depth==8)||(depth==4)||(depth==1))
    {
        QVector grayColorTable;
        QRgb rgb;
        for(int i = 0; i < 256; i++)
        {
         rgb=qRgb(iii);
         grayColorTable.append(rgb);
        }
        pixmap.setColorTable(grayColorTable);
    }

    else
        return;
}

/*void ImageWidget::changeImageToGray()//方法三
{
    int i=pixmap.width();
    int j=pixmap.height();
    QVector grayColorTable;
    QRgb rgb;
    for(int i = 0;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      87102  2010-06-16 21:32  tesImage33\debug\edgeImage.bmp

     文件     787510  2010-10-08 16:01  tesImage33\debug\grayImg.bmp

     文件     443918  2010-10-08 16:01  tesImage33\debug\imagewidget.o

     文件     246722  2010-09-29 14:45  tesImage33\debug\main.o

     文件     318546  2010-11-10 21:50  tesImage33\debug\mainwindow.o

     文件       2932  2010-09-29 14:45  tesImage33\debug\moc_imagewidget.cpp

     文件     258295  2010-09-29 14:45  tesImage33\debug\moc_imagewidget.o

     文件       3077  2010-09-29 14:45  tesImage33\debug\moc_mainwindow.cpp

     文件     267153  2010-09-29 14:45  tesImage33\debug\moc_mainwindow.o

     文件    1726818  2010-11-10 21:50  tesImage33\debug\tesImage33.exe

     文件      29677  2010-12-19 16:29  tesImage33\imagewidget.cpp

     文件        786  2010-09-29 14:45  tesImage33\imagewidget.h

     文件        279  2010-05-28 18:26  tesImage33\main.cpp

     文件       6295  2010-12-19 16:33  tesImage33\mainwindow.cpp

     文件       1348  2010-09-29 14:45  tesImage33\mainwindow.h

     文件       6138  2010-09-14 14:34  tesImage33\Makefile

     文件       6322  2010-09-14 14:34  tesImage33\Makefile.Debug

     文件       6425  2010-09-14 14:34  tesImage33\Makefile.Release

     文件        307  2010-05-28 16:47  tesImage33\tesImage33.pro

     文件       5201  2010-12-19 16:36  tesImage33\tesImage33.pro.user

     文件      12165  2010-11-10 22:38  tesImage33\tesImage33.pro.user.1.3

     目录          0  2010-11-10 21:50  tesImage33\debug

     目录          0  2010-05-28 18:27  tesImage33\release

     目录          0  2010-12-14 19:36  tesImage33

----------- ---------  ---------- -----  ----

              4217016                    24


评论

共有 条评论