灰度化
第一种方法
img = img.convertToFormat(QImage::Format_Grayscale8);
第二种方法
QImage* ImageProcessor::greyScale(QImage *origin)
{
QImage * newImage = new QImage(origin->width(), origin->height(), QImage::Format_ARGB32);
QColor oldColor;
for(int x = 0; x<newImage->width(); x++){
for(int y = 0; y<newImage->height(); y++){
oldColor = QColor(origin->pixel(x,y));
int average = (oldColor.red()+oldColor.green()+oldColor.blue())/3;
newImage->setPixel(x,y,qRgb(average,average,average));
}
}
return newImage;
}
第三种方法
QImage img;
img.load("C:\\Users\\Desktop\\fj_1_meitu.png");
// img = img.convertToFormat(QImage::Format_Grayscale8);
for (int ii = 0; ii < img.width(); ii++) {
for (int jj = 0; jj < img.height(); jj++) {
int gray = qGray(img.pixel(ii, jj));
img.setPixel(ii, jj, QColor(gray, gray, gray).rgb());
}
}
img.save("C:\\Users\\Desktop\\fj.png");
QImage GraizeImage( const QImage& image )
{
int w =image.width();
int h = image.height();
QImage iGray(w,h, QImage::Format_ARGB32);
for(int i=0; i<w;i++)
{
for(int j=0; j<h;j++)
{
QRgb pixel = image.pixel(i,j);
int gray = qGray(pixel);
QRgb grayPixel = qRgb(gray,gray,gray);
QColor color(gray,gray,gray,qAlpha(pixel));
iGray.setPixel(i,j,color.rgba());
}
}
return iGray;
}
亮度
QImage * ImageProcessor::brightness(int delta, QImage * origin){
QImage * newImage = new QImage(origin->width(), origin->height(), QImage::Format_ARGB32);
QColor oldColor;
int r,g,b;
for(int x=0; x<newImage->width(); x++){
for(int y=0; y<newImage->height(); y++){
oldColor = QColor(origin->pixel(x,y));
r = oldColor.red() + delta;
g = oldColor.green() + delta;
b = oldColor.blue() + delta;
//we check if the new values are between 0 and 255
r = qBound(0, r, 255);
g = qBound(0, g, 255);
b = qBound(0, b, 255);
newImage->setPixel(x,y, qRgb(r,g,b));
}
}
return newImage;
}