图像灰度化的四种方法
来源:互联网 发布:淘宝开店保证金怎么交 编辑:程序博客网 时间:2024/06/06 03:02
//浮点算法:Gray=R*0.3+G*0.59+B*0.11void MainWindow::toGrayFloat(QImage *image, QImage *ImageBetter){ int height = image->height(); int width = image->width(); QRgb rgb00,rgb01; int ta = 0, tr = 0, tg = 0, tb = 0; for(int i = 0; i < width; i ++){ for(int j = 0; j < height; j ++){ rgb00 = image->pixel(i,j);//获取rgb ta = (rgb00 >> 24) & 0xff; tr = (rgb00 >> 16) & 0xff; // r = qRed(rgb00); tg = (rgb00 >> 8) & 0xff; // g = qGreen(rgb00) tb = rgb00 & 0xff; //b = qBlue(rgb00); int gray = tr*0.3+tg*0.59+tb*0.11; ImageBetter->setPixel(i,j,qRgb(gray,gray,gray)); } }}//整数方法:Gray=(R*30+G*59+B*11)/100void MainWindow::toGrayInt(QImage *image, QImage *ImageBetter){ int height = image->height(); int width = image->width(); QRgb rgb00,rgb01; int ta = 0, tr = 0, tg = 0, tb = 0; for(int i = 0; i < width; i ++){ for(int j = 0; j < height; j ++){ rgb00 = image->pixel(i,j);//获取rgb ta = (rgb00 >> 24) & 0xff; tr = (rgb00 >> 16) & 0xff; // r = qRed(rgb00); tg = (rgb00 >> 8) & 0xff; // g = qGreen(rgb00) tb = rgb00 & 0xff; //b = qBlue(rgb00); int gray = (tr*30+tg*59+tb*11)/100; ImageBetter->setPixel(i,j,qRgb(gray,gray,gray)); } }}//.移位方法:Gray =(R*76+G*151+B*28)>>8;void MainWindow::toGrayDisplacement(QImage *image, QImage *ImageBetter){ int height = image->height(); int width = image->width(); QRgb rgb00,rgb01; int ta = 0, tr = 0, tg = 0, tb = 0; for(int i = 0; i < width; i ++){ for(int j = 0; j < height; j ++){ rgb00 = image->pixel(i,j);//获取rgb ta = (rgb00 >> 24) & 0xff;// tr = (rgb00 >> 16) & 0xff; // r = qRed(rgb00); tg = (rgb00 >> 8) & 0xff; // g = qGreen(rgb00); tb = rgb00 & 0xff; //b = qBlue(rgb00); int gray = (tr*76+tg*151+tb*28)>>8; ImageBetter->setPixel(i,j,qRgb(gray,gray,gray)); } }}//.平均值法:Gray=(R+G+B)/3;void MainWindow::toGrayAverage(QImage *image, QImage *ImageBetter){ int height = image->height(); int width = image->width(); QRgb rgb00,rgb01; int ta = 0, tr = 0, tg = 0, tb = 0; for(int i = 0; i < width; i ++){ for(int j = 0; j < height; j ++){ rgb00 = image->pixel(i,j);//获取rgb ta = (rgb00 >> 24) & 0xff;// tr = (rgb00 >> 16) & 0xff; // r = qRed(rgb00); tg = (rgb00 >> 8) & 0xff; // g = qGreen(rgb00); tb = rgb00 & 0xff; //b = qBlue(rgb00); int gray = (tr+tg+tb)/3; ImageBetter->setPixel(i,j,qRgb(gray,gray,gray)); } }}
阅读全文
0 0
- 图像灰度化的四种方法
- 图像灰度化方法
- 图像灰度化的三种常见方法源码
- 两种获取灰度图像的方法
- MATLAB几种 彩色图像to灰度图像 的方法
- 实验四 灰度图像的锐化处理
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- C#两种获取灰度图像的方法
- 几种不同的彩色图像转灰度方法
- 图像的灰度化模块
- 图像灰度化的方式
- 图像灰度化的实现
- 图像的灰度化代码
- 图像灰度化的三种方法及matlab,c++,python实现
- 图像灰度化计算多种方法对比
- 灰度图像拉伸方法
- PCB设计中的Mark点
- 读取后缀(yml)配置文件
- 易飞8委外单价抓了上一次报价
- Java入门(3)——数组
- solr 学习笔记
- 图像灰度化的四种方法
- Python学习笔记(四)——IO|进程和线程
- Linux中的chmod指令详解
- hdu 2544 Dijkstra算法
- 单点登录的简单实现
- 键盘按钮keyCode大全
- ios手机 按钮点击事件没反应(这个按钮是js生成的)
- 【Bootstrap】 fileinput:文件or图片上传
- caioj1040:递归10(素数圈)