QImage灰度化
灰度化
第一种方法
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 255r = qBound(0, r, 255);g = qBound(0, g, 255);b = qBound(0, b, 255);newImage->setPixel(x,y, qRgb(r,g,b));}}return newImage;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
