⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.ui.h

📁 qt qimage 显示图象类的使用
💻 H
📖 第 1 页 / 共 3 页
字号:
/****************************************************************************** ui.h extension file, included from the uic-generated form implementation.**** If you wish to add, delete or rename functions or slots use** Qt Designer which will update this file, preserving your code. Create an** init() function in place of a constructor, and a destroy() function in** place of a destructor.*****************************************************************************/#include <qimage.h>#include <qpainter.h>#include <qlineedit.h>#include <qpainter.h>#include <qpoint.h>#include <qcolor.h>#include <qstring.h>#include <iostream.h>#include <qfiledialog.h>#include <qdatetime.h>#include <qrect.h>#include <qcolor.h>#include <qcombobox.h>#include <iostream.h>#include <math.h>#include <qpixmap.h>#include <qmessagebox.h>//#define ABS(a) (a) >= 0? (a):-(a)QString filedirA, filedirB, filepathA, filepathB, filedirSave;bool openflagA=FALSE,openflagB=FALSE, openSaveflag = FALSE;int min(int r, int g, int b){    //if((r == g) && (r == b)) {return -1;}    if ((r <= g) && (r <= b)) {        return r;    } else if ((g <= r) && (g <= b)) {        return g;    } else return b;};bool Savefile(QRadioButton *rb,QString filename,QLineEdit *le,QImage img){    if (rb->isChecked()) {        if ((!openSaveflag) && (le->text() == "")) {            QMessageBox::warning(0,"File save failed","Please choose a Directory to save your pictures !");            return FALSE;        }        filedirSave = le->text();        QString s;        s.sprintf("/");        s = s + filename;        s = filedirSave + s;        if (img.save(s,"JPEG") == FALSE) return FALSE;        return TRUE;    }    //else return FALSE;};QImage filter(QImage image){    QRgb rgb;    int r,g,b;    uint *p;    QImage imagetemp = image;    int x = 0, y = 0;    for (y = 1;y < image.height() - 1;y++) {        for (x = 1;x < image.width()-1;x++) {            rgb = image.pixel(x,y);            r = (int)((float)( qRed(image.pixel(x-1,y-1)) + qRed(image.pixel(x,y-1)) + qRed(image.pixel(x+1,y+1)) + qRed(image.pixel(x-1,y)) + qRed(image.pixel(x,y)) + qRed(image.pixel(x+1,y)) + qRed(image.pixel(x-1,y+1)) + qRed(image.pixel(x,y+1)) + qRed(image.pixel(x+1,y+1)) ) / 9.0 );            g = (int)((float)( qGreen(image.pixel(x-1,y-1)) + qGreen(image.pixel(x,y-1)) + qGreen(image.pixel(x+1,y+1)) + qGreen(image.pixel(x-1,y)) + qGreen(image.pixel(x,y)) + qGreen(image.pixel(x+1,y)) + qGreen(image.pixel(x-1,y+1)) + qGreen(image.pixel(x,y+1)) + qGreen(image.pixel(x+1,y+1)) ) / 9.0 );            b = (int)((float)( qBlue(image.pixel(x-1,y-1)) + qBlue(image.pixel(x,y-1)) + qBlue(image.pixel(x+1,y+1)) + qBlue(image.pixel(x-1,y)) + qBlue(image.pixel(x,y)) + qBlue(image.pixel(x+1,y)) + qBlue(image.pixel(x-1,y+1)) + qBlue(image.pixel(x,y+1)) + qBlue(image.pixel(x+1,y+1)) ) / 9.0 );            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(r,g,b);         }    }    return imagetemp;};QImage threshold(QImage image,int limit){    QRgb rgb;    int r,g,b;    uint *p;    QImage imagetemp = image;    int x=0,y=0;    for (y=0;y<image.height();y++) {        for (x=0;x<image.width();x++) {            rgb = image.pixel(x,y);            r = (qRed(rgb) > limit)? 255:0;            g = (qGreen(rgb) > limit)? 255:0;            b = (qBlue(rgb) > limit)? 255:0;            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(r,g,b);        }    }    return imagetemp;};QImage calH(QImage img){    int x = 0, y = 0;    int r, g, b;    int h, l;    QRgb rgb;    QImage imagetemp = img;    uint *p;    for (y = 0; y < img.height(); y++) {        for (x = 0; x < img.width(); x++) {            rgb = img.pixel(x,y);            r = qRed(rgb);            g = qGreen(rgb);            b = qBlue(rgb);            l = (int)((float)(r + g + b) / 3.0);            if ((r == g) && (r == b)) {                h = 170;//  2/3 max(255)                p = (uint *)imagetemp.scanLine(y) + x;                *p = qRgb(h,h,h);             } else if (min(r,g,b) == r) {                h = (int)((((float)(b - r) / (float)(l - r) / 3.0) + 1.0) / 3.0 * 255.0);            } else if (min(r,g,b) == g) {                h = (int)((((float)(r - g) / (float)(l - g) / 3.0) + 2.0)/ 3.0 * 255.0);            } else {                h = (int)((((float)(g - b) / (float)(l - b) / 3.0) + 1.0) / 3.0 * 255.0);            }            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(h,h,h);           }    }    return imagetemp;};QImage calHint(QImage img){    int x = 0, y = 0;    int r, g, b;    int h;    QRgb rgb;    QImage imagetemp = img;    uint *p;    for (y = 0; y < img.height(); y++) {        for (x = 0; x < img.width(); x++) {            rgb = img.pixel(x,y);            r = qRed(rgb);            g = qGreen(rgb);            b = qBlue(rgb);            if ((r == g) && (r == b)) {                h = 170;//  2/3 max(255)                p = (uint *)imagetemp.scanLine(y) + x;                *p = qRgb(h,h,h);             } else if (min(r,g,b) == r) {                h = 85*(g+2*b-3*r)/(g+b-2*r);            } else if (min(r,g,b) == g) {                h = 85*(3*r+2*b-5*g)/(r+b-2*g);            } else {                h = 85*(r+2*g-3*b)/(r+g-2*b);            }            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(h,h,h);           }    }    return imagetemp;};QImage calL(QImage img){    int x = 0, y = 0;    int r, g, b;    int l;    QRgb rgb;    QImage imagetemp = img;    uint *p;    for (y = 0; y < img.height(); y++) {        for (x = 0; x < img.width(); x++) {            rgb = img.pixel(x,y);            r = qRed(rgb);            g = qGreen(rgb);            b = qBlue(rgb);            l = (int)((float)(r + g + b) / 3.0);            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(l,l,l);            }    }    return imagetemp;};QImage calS(QImage img){    int x = 0, y = 0;    int r, g, b;    int l,s;    QRgb rgb;    QImage imagetemp = img;    uint *p;    for (y = 0; y < img.height(); y++) {        for (x = 0; x < img.width(); x++) {            rgb = img.pixel(x,y);            r = qRed(rgb);            g = qGreen(rgb);            b = qBlue(rgb);            l = (int)((float)(r + g + b) / 3.0);            if (min(r,g,b) == r) {                s = (int)(((float)r / (float)l) * 255.0);            } else if (min(r,g,b) == g) {                s = (int)(((float)g / (float)l) * 255.0);            } else if (min(r,g,b) == b) {                s = (int)(((float)b / (float)l) * 255.0);            } else {                s = (int)(((float)r / (float)l) * 255.0);            }            p = (uint *)imagetemp.scanLine(y) + x;            *p = qRgb(s,s,s);            }    }    return imagetemp;}QImage GetNperM(QImage img, int n){}void Form1::init(){    comboBoxAB->insertItem("Image A",0);    comboBoxAB->insertItem("Image B",1);    comboBoxfomat->insertItem("JPEG",0);    comboBoxfomat->insertItem("BMP",1);    comboBoxfomat->insertItem("PNG",2);    comboBoxfomat->insertItem("XPM",3);    comboBoxRGBAB->insertItem("Image A", 0);    comboBoxRGBAB->insertItem("Image B", 1);    comboBoxRGB->insertItem("R", 0);    comboBoxRGB->insertItem("G", 1);    comboBoxRGB->insertItem("B", 2);    comboBoxHLSAB->insertItem("Image A",0);    comboBoxHLSAB->insertItem("Image B",1);    comboBoxHLS->insertItem("H",0);    comboBoxHLS->insertItem("L",1);    comboBoxHLS->insertItem("S",2);      comboBox3x3AB->insertItem("Image A",0);    comboBox3x3AB->insertItem("Image B",1);    comboBoxThreshold->insertItem("Image A",0);    comboBoxThreshold->insertItem("Image B",1);    comboBoxGetAB->insertItem("Image A",0);    comboBoxGetAB->insertItem("Image B",1);    // QPixmap pix("images/back.png");    // this->setPaletteBackgroundPixmap(pix);}void Form1::different(){    if ((!openflagA) && (lineEditA->text() == "")) {        lineEdit1->setText("WARNING: Please select image A"); return;    }    if ((!openflagB) && (lineEditB->text() == "")) {        lineEdit1->setText("WARNING: Please select image B"); return;    }    filedirA = lineEditA->text();    filedirB = lineEditB->text();    QImage imageA(filedirA);    QImage imageB(filedirB);    QImage imagetemp = imageB;    QPainter p( this );    p.drawImage(QRect(QPoint(70,110),QPoint(198,206)),imageA);    p.drawImage(QRect(QPoint(280,110),QPoint(408,206)),imageB);    //p.drawImage(QPoint(20,190), imageA);    // p.drawImage(QPoint(300,190), imageB);    int imgwidth, imgheight, difcount(0);    int x,y;    uint *q;    //  int i=0;    QString str;    QRgb rgbA, rgbB;    int rA,gA,bA,rB,gB,bB;    int difvalue = spinBox1->value();    imgwidth = imageA.width();    imgheight = imageA.height();    if (imageA != imageB) {        if ((imageA.size() != imageB.size())) {            lineEdit1->setText("WARNING: Their SIZE are NOT same!!!");            return;        }        else {            //lineEdit1->setText("processing...");            for (y = 0; y < imgheight; y++) {                for (x = 0; x < imgwidth; x++) {                    rgbA = imageA.pixel(x,y);                    rgbB = imageB.pixel(x,y);                    rA = qRed(rgbA);                    gA = qGreen(rgbA);                    bA = qBlue(rgbA);                    rB = qRed(rgbB);                    gB = qGreen(rgbB);                    bB = qBlue(rgbB);                    if (!(((abs(rA - rB) <= difvalue) && (abs(gA - gB) <= difvalue) &&  (abs(bA - bB) <= difvalue)) )) {                        difcount++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -