灰度世界算法原理及C++实现的示例分析
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家介绍灰度世界算法原理及C++实现的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前置内容人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表
千家信息网最后更新 2025年12月03日灰度世界算法原理及C++实现的示例分析
这篇文章给大家介绍灰度世界算法原理及C++实现的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
前置内容
人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备并不具有这样的调节功能,不同的光照环境会导致采集到的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡算法去消除光照环境对颜色显示的影响。
灰度世界算法原理
灰度世界算法以灰度世界假设为基础,假设为:对于一幅有着大量色彩变化的图像,RGB3个分量的平均值趋于同一个灰度值Gray。从物理意思上讲,灰度世界算法假设自然界景物对于光线的平均反射的均值在整体上是一个定值,这个定值近似为"灰色"。颜色平衡算法将这一假设强制应用于待处理的图像,可以从图像中消除环境光的影响,获得原始场景图像。
算法步骤

算法优缺点
此算法简单快速,但是当图像场景颜色并不丰富时,尤其是出现大量单色物体时,该算法会失效。
源码实现
Mat GrayWorld(Mat src) { vector bgr; cv::split(src, bgr); double B = 0; double G = 0; double R = 0; int row = src.rows; int col = src.cols; Mat dst(row, col, CV_8UC3); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { B += 1.0 * src.at(i, j)[0]; G += 1.0 * src.at(i, j)[1]; R += 1.0 * src.at(i, j)[2]; } } B /= (row * col); G /= (row * col); R /= (row * col); printf("%.5f %.5f %.5f\n", B, G, R); double GrayValue = (B + G + R) / 3; printf("%.5f\n", GrayValue); double kr = GrayValue / R; double kg = GrayValue / G; double kb = GrayValue / B; printf("%.5f %.5f %.5f\n", kb, kg, kr); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { dst.at(i, j)[0] = (int)(kb * src.at(i, j)[0]) > 255 ? 255 : (int)(kb * src.at(i, j)[0]); dst.at(i, j)[1] = (int)(kg * src.at(i, j)[1]) > 255 ? 255 : (int)(kg * src.at(i, j)[1]); dst.at(i, j)[2] = (int)(kr * src.at(i, j)[2]) > 255 ? 255 : (int)(kr * src.at(i, j)[2]); } } return dst;} 效果图
结论
可以看到灰度世界算法有了白平衡的效果,并且该算法的执行速度非常之快。
关于灰度世界算法原理及C++实现的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
算法
灰度
世界
颜色
图像
环境
原理
光照
内容
示例
C++
分析
场景
效果
更多
物体
j++
变化
帮助
影响
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql数据库游标查询数据
中国数据库全文阅读格式
我的世界服务器只有自己能登
数据深圳软件开发
一个数据库实例能建多少表
武汉众邦银行软件开发
博途读取sql数据库
网络安全日是
忻州展厅触摸签名软件开发公司
linux服务器图形化
供油软件开发教程
海康监控默认服务器端口
数据库中有相同对象怎么办
网络安全产品设计灵感
加拿大网络安全专业有哪些
中国有自己制作的服务器吗
堆肥原料养分数据库
hr网络安全架构
小米数据库中间件库
移动视频聊天软件开发
联想服务器拆
三六零网络安全产品
高级软件开发工程师工资标准
数据库归档日志分析
网络安全管理和监狱管理办法
oracle拷贝数据库
外挂软件开发者
java数据库自学教程
mysql8.0默认数据库
电脑服务器ip地址和服务端口号