所谓图像增强就是把对比度低,看不清楚的图片处理成为对比度高,比较清楚的图片。

下面有三种增强方式,其中log和gamma变换是要自己实现的,效果的好与坏是需要自己调整参数的!!!!


1、均衡直方图

上图中图像灰度集中在100-200的区域内,显得灰蒙蒙的,在在经过均衡直方图的处理后,图像灰度均匀分布在0-255的区域内,变得清晰很多。均衡直方图在opencv种直接有接口,效果如下:

equalizeHist(input, output);

void equalHist(Mat& m_img)
{Mat m_rgb[3];split(m_img, m_rgb);for (int i = 0; i < 3; i++){equalizeHist(m_rgb[i], m_rgb[i]);}merge(m_rgb, 3, m_img);
}

2、log变换

输入值为r,v和c都是参数,可以看出随着v值的增大,低灰度的地方被扩展,细节突出,高灰度的部分被压缩,细节被隐藏。应用在rgb图像中,需要将3通道图像分开,分别变换然后再融合起来。

void logTrans(Mat& m_img, int n_v, int n_c)
{Mat m_imgLog(m_img.size(), CV_32FC3);for (int i = 0; i < m_img.rows; i++)for (int j = 0; j < m_img.cols; j++){m_imgLog.at<Vec3f>(i, j)[0] = n_c * log(1 + n_v * m_img.at<Vec3b>(i, j)[0]) / log(n_v + 1);m_imgLog.at<Vec3f>(i, j)[1] = n_c * log(1 + n_v * m_img.at<Vec3b>(i, j)[1]) / log(n_v + 1);m_imgLog.at<Vec3f>(i, j)[2] = n_c * log(1 + n_v * m_img.at<Vec3b>(i, j)[2]) / log(n_v + 1);}//归一化到0-255normalize(m_imgLog, m_imgLog, 0, 255, CV_MINMAX);//转换成8bit图像显示convertScaleAbs(m_imgLog, m_img);
}

3、gamma变换

gamma变换和log变换很像,c和gamma为参数,r为输入值,gamma值很小的时候和log变换基本相同,gamma值很大的时候就和log变换效果相反了。

void gammaTrans(Mat& m_img, double gamma, int n_c)
{Mat m_imgGamma(m_img.size(), CV_32FC3);for (int i = 0; i < m_img.rows; i++)for (int j = 0; j < m_img.cols; j++){m_imgGamma.at<Vec3f>(i, j)[0] = n_c * pow(m_img.at<Vec3b>(i, j)[0], gamma);m_imgGamma.at<Vec3f>(i, j)[1] = n_c * pow(m_img.at<Vec3b>(i, j)[1], gamma);m_imgGamma.at<Vec3f>(i, j)[2] = n_c * pow(m_img.at<Vec3b>(i, j)[2], gamma);}normalize(m_imgGamma, m_imgGamma, 0, 255, CV_MINMAX);convertScaleAbs(m_imgGamma, m_img);
}

OpenCV - 均衡直方图、Log变换、伽马变换3种图像增强方法相关推荐

  1. OpenCV--Python 图像增强(线性变换,直方图正规化,伽马变换,全局直方图均衡化,限制对比度的自适应直方图均衡化)

    图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰.对比度增强有几种常用的方法,如线性变换.分段线性变换.伽马变 ...

  2. 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

    一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  3. python实现对数转换_利用opencv在python平台上实现二值变换,伽马变换,对数变换,补色变换等...

    如何用 opencv 在 python 平台上实现灰度图像的二值化,对数变换, ,伽马变换以及补色变 换.代码如下 import cv2 import copy import math import  ...

  4. 【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

    [OpenCV 例程200篇]44. 图像的灰度变换(伽马变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  5. 在OpenCV里实现伽马变换

    在前面学习了图像的线性变换,接着下来介绍常用图像非线性变换-伽马变换(Gamma变换).Gamma变换是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 这个指数即为Ga ...

  6. [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

    灰度变换,属于一个非常重要的概念.这里主要参考<Digital Image Processing> Rafael C. Gonzalez / Richard E. Woods 的第三章.书 ...

  7. 图像处理之混合空间增强——(Java:拉普拉斯锐化、Sobel边缘检测、均值滤波、伽马变换)

    相信看过冈萨雷斯第三版数字图像处理的童鞋都知道,里面涉及到了很多的基础图像处理的算法,今天,就专门借用其中一个混合空间增强的案例,来将常见的几种图像处理算法集合起来,看能发生什么样的化学反应 首先,通 ...

  8. 图像增强算法汇总(直方图均衡化、拉普拉斯、Log变换、gamma伽马变换)附MATLAB代码

    一.图像增强算法介绍 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  9. OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

    人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供 ...

  10. 图像的常用灰度变换——负片、伽马变换、对数变换、直方图均衡化、自适应灰度变换及其MATLAB实现

    灰度变换是图像预处理的重要手段,常见的变换方法如下,图文并茂和大家一起学习: %% 尝试灰度变换--伽马变换和对数变换.直方图均衡化clc,clear,close allf = imread('C:\ ...

最新文章

  1. 谈谈Android重打包--初语
  2. jquery.dataTables.min.js: Uncaught TypeError: Cannot read property 'style' of undefined
  3. python制作一个教学网站_小白如何入门Python? 制作一个网站为例
  4. 乘风破浪的Seq2Seq模型:在事件抽取上的应用
  5. 树莓派okdo_创客的AK47—树莓派4正式发布,性能大幅提升,售价仅为35美元。
  6. Android开发:利用Activity的Dialog风格完成弹出框设计
  7. mysql mgr CONSuL_Mysql MGR + Consul + Consul-template + Haproxy 搭建mysql 高可用集群 (三)...
  8. 无路可逃:Oracle 12.2 BigSCN新特性可能的DB Link兼容性问题
  9. 6月移动互联网全行业排行榜发布:这些产品正成为新兴市场流量入口
  10. ai将会怎样影响计算机的发展,AI再升级!人工智能会对我们的未来产生怎样的影响?...
  11. More Joel on Software 读书笔记
  12. Android 简历+面试题 汇总
  13. php手机打开pdf文件怎么打开,PDF文件怎么打开?手机打开PDF及编辑的技巧
  14. numpy 函数里面的axis参数的含义
  15. YOLOv5目标检测全流程:从标注数据到检测模型
  16. 【转】最大后验概率(MAP)- maximum a posteriori
  17. 什么是PCB中的net和vl孔
  18. LK金字塔光流法与简单实现
  19. MBA案例分析(行销与营销之行销三)
  20. Unity基础 粒子系统

热门文章

  1. C++ 冒险游戏 小镇5.4.0
  2. APP和小程序有什么区别?
  3. 光耦w314的各引脚图_专营光耦全系列 PS2805C-4-F3-A SOP-16 只做原装现货
  4. softmax回归与交叉熵损失
  5. c语言结构体定义坐标,C语言结构体定义的方式
  6. Spark之购物篮分析
  7. 【计算机系统结构学习笔记】
  8. objectarx用户交互_ObjectARX(C++)-ADSRX和用户交互-用户交互的实现(UserIntereaction)...
  9. wpf Rectangle
  10. Visual Studio Code 插件推荐安装