灰度世界算法原理及C++实现的示例分析
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章给大家介绍灰度世界算法原理及C++实现的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前置内容人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表
千家信息网最后更新 2025年01月25日灰度世界算法原理及C++实现的示例分析
这篇文章给大家介绍灰度世界算法原理及C++实现的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
前置内容
人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备并不具有这样的调节功能,不同的光照环境会导致采集到的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡算法去消除光照环境对颜色显示的影响。
灰度世界算法原理
灰度世界算法以灰度世界假设为基础,假设为:对于一幅有着大量色彩变化的图像,RGB3个分量的平均值趋于同一个灰度值Gray。从物理意思上讲,灰度世界算法假设自然界景物对于光线的平均反射的均值在整体上是一个定值,这个定值近似为"灰色"。颜色平衡算法将这一假设强制应用于待处理的图像,可以从图像中消除环境光的影响,获得原始场景图像。
算法步骤
算法优缺点
此算法简单快速,但是当图像场景颜色并不丰富时,尤其是出现大量单色物体时,该算法会失效。
源码实现
Mat GrayWorld(Mat src) { vectorbgr; 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安全错误
数据库的锁怎样保障安全
网络安全专业专硕名称
安博网络技术
c修改sql数据库
密码学与网络安全找工作
电脑桌面下载软件开发
海珠靠谱的网络安全服务
广东h5软件开发公司
戏说软件开发
河南服务器机箱制造厂
网络安全作文10字
数据库技术的应用包括
济宁软件开发测试培训
数据库比较数据大小的函数
数据库请假管理系统er图
内江网络技术专业
科技互联网行业特点
上海智能软件开发价格
三大著名数据库
在科技发达的互联网时代
如何监管规划城市网络安全
网络安全十三五发展规划
小学预防网络安全班会
网络安全管理是属于什么警种
信息网络安全检查的原则
炉石服务器切换
网络安全标语漫画
闵行区上门软件开发管理办法
北京点菜终端软件开发公司
股票多屏联动软件开发
黑龙江常规软件开发公司