opencv:Gamma校正
// 链接 https://blog.csdn.net/linqianbi/article/details/78617615
// Gamma 校正
#include <iostream>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include<cmath>
using namespace cv;Mat gammaTransform(Mat& srcImage, float kFactor)
{unsigned char LUT[256];for (int i = 0; i < 256; i++){float f = (i + 0.5f) / 255;f = (float)(pow(f, kFactor));LUT[i] = saturate_cast<uchar>(f * 255.0f - 0.5f);}Mat resultImage = srcImage.clone();if (srcImage.channels() == 1){MatIterator_<uchar> iterator = resultImage.begin<uchar>();MatIterator_<uchar> iteratorEnd = resultImage.end<uchar>();for (; iterator != iteratorEnd; iterator++){*iterator = LUT[(*iterator)];}}else{MatIterator_<Vec3b> iterator = resultImage.begin<Vec3b>();MatIterator_<Vec3b> iteratorEnd = resultImage.end<Vec3b>();for (; iterator != iteratorEnd; iterator++){(*iterator)[0] = LUT[((*iterator)[0])];//b(*iterator)[1] = LUT[((*iterator)[1])];//g(*iterator)[2] = LUT[((*iterator)[2])];//r}}return resultImage;
}
int main()
{Mat srcImage = imread("test.jpg");if (!srcImage.data){printf("could not load image...\n");return -1;}//取两种不同的gamma值float gamma1 = 3.33f;float gamma2 = 0.33f;float kFactor1 = 1 / gamma1;float kFactor2 = 1 / gamma2;Mat result1 = gammaTransform(srcImage, kFactor1);Mat result2 = gammaTransform(srcImage, kFactor2);namedWindow("demo", CV_WINDOW_AUTOSIZE);imshow("srcImage", srcImage);imshow("res1", result1);imshow("res2", result2);imwrite("Gamma.jpg", result1);waitKey(0);waitKey(0);return 0;
}
opencv:Gamma校正相关推荐
- OpenCV 【十】——Gamma校正 ——图像灰度变化
Gamma校正(C++.OpenCV实现) 1.作用: Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 伽玛校正由以下幂律表达式定义: 2.函数原型 v ...
- Gamma校正及其OpenCV实现
參考:[1]http://www.cambridgeincolour.com/tutorials/gamma-correction.htm [2]http://en.wikipedia.org/wik ...
- 在OpenCV环境下对图像做Gamma校正
什么是Gamma校正? Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系. 上面中的指数γ即为Gamma. 经过Gamma校正后的输入和输出图像灰度值关系如 ...
- gamma校正 matlab,Gamma校正 ——图像灰度变化 OpenCV (十)
Gamma校正(C++.OpenCV实现) 1.作用: Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 伽玛校正由以下幂律表达式定义: 2.函数原型 v ...
- 基于OpenCV的Gamma校正原理与实现
声明:本文原文出自@零钱币 的博文,原文地址为:https://blog.csdn.net/linqianbi/article/details/78617615.本文全文摘抄以及少量修订仅为本人学习. ...
- 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
目录 一.什么是图像的灰度化? 二.灰度化的几种方法(最大值法.平均值法.加权均值法.gamma校正) 1.直接调用函数:cv2.cvtColor() 图像颜色空间转换 2.最大值法 (1)概念 (2 ...
- 图像处理算法之Gamma校正
文章目录 1 使用场景 2 原理 3 实现步骤 4 实现 5 效果 1 使用场景 当一张图片出现过亮或者过暗的时候导致图像对比度较差,可以使用Gamma校正来处理 2 原理 如上图所示,为函数 f(I ...
- java opencv gamma_Gamma校正及其OpenCV实现
一.什么是Gamma校正? Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: [2] 这个指数即为Gamma. 经过Gamma校正后的输入和输出图像灰度值 ...
- OpenCV畸变校正原理以及损失有效像素原理分析
常用的张正友标定法的流程,其中获取了摄像机的内参矩阵K,和畸变系数D. 1.在普通相机cv模型中,畸变系数主要有下面几个:(k1; k2; p1; p2[; k3[; k4; k5; k6]] ,其中 ...
最新文章
- 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器
- Kona 8:鹅厂基于OpenJDK开源的JDK
- SQL Server HA - 数据库镜像2 (Mirroring)(1418错误解决)
- VTK:相互作用之InteractorStyleUser
- AppendStream和RetractStream(没有弄完)
- 网络杂谈, Docker, MongoDB
- C# Action用法
- UOJ#351-新年的叶子【树的直径,数学期望】
- [bash] printf使用范例
- 杜克大学计算机硕士要几年,2017杜克大学春季不招计算机专业的硕士?
- 【软件测试】测试需求分析
- 学生对象数组实现按年龄排序 按成绩排序1022
- 面试题 02.06. 回文链表
- SSD6中Exercise4 (substitute.cpp) 答案解析
- 基于群晖DS216+II的家庭存储解决方案
- Abelssoft Undeleter(数据恢复软件)v5.01免费版
- 文件及文件夹管理规范
- 初始C语言——成绩等级划分
- MATLAB--基本操作与矩阵输入
- win7如何开启Telnet服务
热门文章
- JEECG - 基于代码生成器的J2EE智能开发框架 杂记:【演示视频和源码】
- RedHat系列软件管理(第二版) --源码包安装
- 微信小程序周报(第八期)
- 红米手机5怎么样卡刷开发版开启root超级权限
- java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务...
- PowerDesigner 中的name与comment转换(转)
- [Everyday Mathematics]20150125
- Pl/SQL Developer 配置
- VSTS 离线源码版本辅助工具
- maven关联oracle,maven添加oracle jdbc依赖