?? form1.ui.h
字號(hào):
/****************************************************************************** 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++;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -