資源簡介
使用QT編程實(shí)現(xiàn)圖像的灰度處理、柱狀圖拉升、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()//方法二最好的方法,我設(shè)計(jì)的
{
????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;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????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
評(píng)論
共有 條評(píng)論