前言

1.在处理摄像头时,或者在图像中物体轮廓提取时,常常会碰到一些背景偏暗的图像,为了更好的得到效果,那么图像增强会是一个不错的选择。
2.我这里使用的库OpenCV版本是3.30,关于opencv学习,有兴趣的看我之前发的博客,可以加之前博客后面给的兴趣群。

代码演示

1.代码

/*多尺度视网膜增强*/
//第一个参数输入的原始图像
//第二参数输出的图像
//第三个参数
void multiScaleRetinex(const Mat &src, Mat &dst)
{//增强尺度int gain = 128;int offset = 128;Mat dst_log, dst_f, res_f;vector<double> sigemas;vector<double> weights;for (int i = 0; i < 3; i++){weights.push_back(1.f / 3);}sigemas.push_back(30);sigemas.push_back(150);sigemas.push_back(300);//转换数据src.convertTo(dst_f, CV_32FC3);//对数变换log(dst_f, dst_log);//根据给定的权重归一化double weight = 0;size_t num = weights.size();for (size_t i = 0; i < num; i++){weight += weights[i];}if (weight != 1.0f){dst_log *= weight;}//过滤for (size_t i = 0; i < num; i++){Mat blur = dst_f.clone();gaussianFilter(blur, sigemas[i]);log(blur, res_f);//计算加权差res_f *= weights[i];dst_log -= res_f;}dst = (dst_log * gain) + offset;dst.convertTo(dst, CV_8UC3);
}//高斯滤波
void gaussianFilter(Mat &img, double sigma)
{int filter_size;//不能大于300,大于300强行改成300if (sigma > 300){sigma = 300;}//获取滤波器的大小,转为奇数filter_size = (int)floor(sigma * 6) / 2;filter_size = filter_size * 2 + 1;//如果小于3则返回if (filter_size < 3){return;}//高斯模数GaussianBlur(img, img, cv::Size(filter_size, filter_size), 0);
}

2.运行效果

OpenCV图像增强(一)——多尺度视网膜增强相关推荐

  1. msrcr(Multi-Scale Retinex with Color Restoration) 带色彩恢复的多尺度视网膜增强算法 整理

    本文主要总结整理msrcr算法相关,包括基本原理,效果和实现代码 为了提高低亮度条件和背光条件下拍摄图像的效果,尝试了各种常规的数字图像处理方法,包括: 线性变换 对数变换 直方图均衡等 对yuv分量 ...

  2. 多尺度视网膜图像增强_视网膜图像怪异的预测

    多尺度视网膜图像增强 If you've ever been to see an opthamologistst, you've probably undergone a routine proced ...

  3. python2.7图像局部增强_Python OpenCV图像增强

    图像增强传统方式有线性增强.非线性增强.直方图均衡化.局部增强等. 线性增强: # 亮度.对比度 # alpha为图像增益,表示放大倍率,取值范围(0.1-3.0)默认值1 # beta为偏置值用来调 ...

  4. 图像多尺度对比增强算法

    多尺度对比增强算法的基本观点是将图像分解成代表图像单个细节的像素,然后立 即在这些像素上提高对比度,因此要求选择一种图像分解方法. 在图像分解方法的选择上要遵循以下两个基本条件:           ...

  5. Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++)

    Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++) Baumer工业相机 Baumer工业相机使用图像算法增加图像的技术背景 Baumer工业相机 ...

  6. 传统基本图像处理方法:图像增强(灰度变换、直方图增强、空间域滤波、频率域滤波)、图像分割、图像配准等

    图像处理设计主要有以下几种处理:图像增强(灰度变换.直方图增强.空间域滤波.频率域滤波).图像分割.图像配准等等. 图像增强: 图像增强作为基本的图像处理技术,目的在于通过对图像进行加工使其比原始图像 ...

  7. OPENCV学习笔记 - SIFT 尺度不变特征变换 Python

    OPENCV学习笔记 - SIFT 尺度不变特征变换 Python 为什么我们需要SIFT尺度不变特征变换? 第一,建立高斯差分金字塔 第二,极值点的精确定位 第三,确定关键点的主方向 第四,构建关键 ...

  8. OpenCV图像增强(二)——Retinex图像增强

    前言 1.Retinex图像增强是一种高动态范围图像的新色调映射技术.而基础理论是,物体的颜色是由物体对长波(红色).中波(绿色).短波(蓝色)光线的反射能力来决定的,而不是由反射光强度的绝对值来决定 ...

  9. opencv 图像增强_图像增强、锐化,利用 Python-OpenCV 帮你实现 4 种方法!

    图像增强目的使得模糊图片变得更加清晰.图片模糊的原因是因为像素灰度差值变化不大,如片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不清晰的感觉 解决这个问题的最直接简单办法,放大像素灰 ...

最新文章

  1. SQL语句性能优化--LECCO SQL Expert
  2. 令人作呕的OpenSSL
  3. poi jxl 生成EXCEL 报表
  4. 采用keepalived施工可用性MySQL-HA
  5. 【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)
  6. vue页面乱码_项目部署到weblogic后页面乱码问题
  7. linux终端中书名号,Linux双引号、单引号和反向单引号
  8. 全程软件测试之测试需求分析与计划(3)
  9. #洛谷oj:P1196银河英雄传说
  10. 实施工程师的发展前景
  11. python身份证号码计算年龄
  12. 关于 sinc函数和rect函数 傅里叶变换的思考
  13. PR值与网站权重的关系
  14. android frida 检测_android逆向__超级好用的使用frida追踪方法
  15. 雷军:别轻易尝试,要做好准备再去创业
  16. 工具篇:TailScale免费实现远程设备互连(无费用方案,亲测,零基础安装),支持手机、Windows或linux系统、NAS
  17. 读取xml文件转成ListT对象的两种方法
  18. SQL数据库常用语句大全
  19. 服务器价格和性能,戴尔PowerEdge R715 性能与价格的平衡
  20. 诺顿ghost使用教程

热门文章

  1. mysql5.7.1.9二进制安装_mysql 5.7.9 linux二进制安装
  2. Mybatis框架的操作步骤和细节处理
  3. 1—YOLO2:环境搭建
  4. 二、安装Spark集群
  5. 高级(复杂)指针的含义
  6. 【c++】8.map和vector容器查找、删除指定元素、emplace、insert
  7. Tomcat——目录结构
  8. HTML 5 视频/音频参考手册
  9. JavaScript类型总览(图)
  10. 程序员面试题精选100题(49)-复杂链表的复制[算法]