DDE处理的细节

  1. 分离背景层和细节层:使用特殊的滤波器,将图像分成背景层和细节层。背景层通常包含低频信息,而细节层包含高频信息。

  2. 对背景层进行灰度增强:通过对背景层应用适当的灰度增强算法,提高背景层的对比度和视觉感知。

  3. 对细节层进行细节增强和噪声抑制:细节层中包含着图像的细节信息,可以利用非线性处理方法,例如增强锐化或边缘增强算法来增强细节,并抑制噪声。

  4. 动态范围调整:根据图像的整体动态范围,对背景层和细节层进行动态范围的调整和压缩,以便将原本动态范围较高的图像信息映射到8位输出图像的范围内。

  5. 合成输出图像:将增强后的背景层和细节层重新合成为一幅8位输出图像,以显示大动态温差和目标局部细节信息。

如上,DDE技术通过滤波器分离、背景层和细节层的处理、动态范围调整等步骤,能够提取和突出图像的细节,并将其限制在8位输出图像中,以保留大动态温差和目标局部的细节信息。

分离背景层和细节层:

对背景层进行灰度增强:

两种方法的效果

自适应直方图均衡化

对比度拉伸

对细节层进行细节增强

结果比对:

DDE算法

直接对输入图像 应用 直方图均衡化

直接对输入图像应用自适应直方图均衡化

自适应直方图均衡化(局部对比度增强)

深度学习学习到图像的哪些特征:

边缘特征:边缘,即灰度或颜色变化的地方

纹理特征:即图像中重复的局部结构

形状特征:包括物体的轮廓,形状的几何特征

颜色特征:不同颜色空间的颜色特征,包括颜色分布、颜色直方图

空间结构特征:不同物体之间的空间结构关系,包括物体的相对位置、大小、方向等特征

层次结构特征:从低层次的局部特征到高层次的语义特征

个人总结:

我是为了做红外目标检测才做的DDE数据增强

个人感觉DDE算法将背景和前景区分度加大,提高图像对比度,同时边缘特征、性状特征很清楚

而直方图均衡化有点曝光太强的感觉,边缘特征、性状特征不太清楚

自适应直方图均衡化后,边缘特征、性状特征也比较清楚

DDE算法处理后的比自适应直方图肉眼上看上去更舒服,但是还是需要结合模型训练才能看出DDE算法是否比自适应直方图要好!

代码:

#include <opencv2/opencv.hpp>using namespace cv;int main()
{// 读取输入图像Mat inputImage = imread("/home/jason/work/01-img/infrared.png",IMREAD_GRAYSCALE);imshow("input", inputImage);// -------------------// 执行DDE细节增强// -----------------// 第一步:滤波器分离低频和高频信息Mat blurImg, detailImg;GaussianBlur(inputImage, blurImg, Size(0, 0), 10);detailImg = inputImage - blurImg;imshow("blur", blurImg);imshow("detai", detailImg);// 第二步,对低频信息应用合适的灰度增强算法Mat enhancedBlurImg, enhancedDetailImg;//    double min_val, max_val;// 拉伸对比度
//    cv::minMaxLoc(blurImg, &min_val, &max_val);
//    cv::convertScaleAbs(blurImg, enhancedBlurImg, 255.0/ (max_val - min_val), -255.0 * min_val/ (max_val - min_val));cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(2.0, cv::Size(8,8)); // 自适应直方图均衡化,用于灰度增强clahe->apply(blurImg, enhancedBlurImg);imshow("enhancedBlurImg", enhancedBlurImg);Mat enhancedBlurImg_blur;cv::bilateralFilter(enhancedBlurImg, enhancedBlurImg_blur, 9, 75, 75); // 双边滤波,用于去除噪声imshow("enhancedBlurImg-blur", enhancedBlurImg_blur);// 第三步,对高频信息应用合适的细节增强和噪声抑制算法cv::Ptr<cv::CLAHE> clahe_ = cv::createCLAHE(); // 自适应直方图均衡化(局部对比度增强),可增强细节clahe_->setClipLimit(4.0);clahe_->apply(detailImg, enhancedDetailImg);imshow("enhancedDetailImg", enhancedDetailImg);//     Mat enhancedDetailImg_blur;
//     cv::fastNlMeansDenoising(enhancedDetailImg, enhancedDetailImg_blur, 10, 10, 7); // NL-Means非局部均值去噪,可抑制噪音
//     imshow("enhancedDetailImg_blur", enhancedDetailImg_blur);// 第四步// 合成最终的输出图像Mat output;cv::addWeighted(enhancedBlurImg, 0.3, enhancedDetailImg, 0.7, 0,output);imshow("output", output);// -------------// 自适应直方图均衡化、直方图均衡化来对比DDE算法效果// -----------Mat out2;cv::Ptr<cv::CLAHE> clahe2 = cv::createCLAHE(2.0, cv::Size(8,8)); // 自适应直方图均衡化,用于灰度增强clahe2->apply(inputImage, out2);imshow("自适应直方图均衡化", out2);Mat out3;cv::equalizeHist(inputImage, out3);imshow("直方图均衡化", out3);// 等待按键退出waitKey(0);return 0;
}

2023.07.19 更新

感觉

『红外图像 数据增强』DDE(Digital Detail Enhancement)算法相关推荐

  1. 机器学习隐私研究新进展:数据增强风险被低估,新算法“降服”维数依赖

    编者按:如今,数据是推动人工智能创新的核心要素.但数据的安全和隐私问题限制了数据充分释放其潜能.一直以来,微软都倡导打造负责任的人工智能,并正在开发和利用多种技术以提供更强大的隐私保护.确保数据安全. ...

  2. 从 CV 到 NLP,深度学习领域的数据增强有哪些?

    2019-12-09 04:31:10 作者 | 张宁(哈工大SCIR) 编辑 | 唐里 本文转载自公众号 哈工大SCIR 数据增强(Data Augmentation)是一种通过让有限的数据产生更多 ...

  3. 大杀器!攻克目标检测难点秘籍四,数据增强大法

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一:模型加速之轻量化网络.秘籍二:非极大抑制算法和回归损失优化之路. ...

  4. c语言程序乔奎,『C  基础入门』C语言的数据序列化

    新推波形开秤才子惹眼,捕鱼球节频度驿亭翘板.封神崴瑞侧室佩带盘存寺里!契刻嘟囔笑窝明智发泡画策『C 基础入门』C语言的数据序列化?浓度满袋伴娘冷烫拿放杀戮行者酷爱,『C 基础入门』C语言的数据序列化伴 ...

  5. 系列 | 漫谈数仓第四篇NO.4 『数据应用』(BIOLAP)

    点击上方蓝色字体,置顶/星标哦 目前10000+人已关注加入我们 本文目录CONTENTS ☞ 01.可视化BI工具 [ 开源BI,商业BI,传统BI ] ☞ 02.OLAP科普 [ ROLAP  M ...

  6. 『Oracle数据复制容灾案例系列』兴业证券Oracle容灾案例

    『Oracle数据复制容灾案例系列』   兴业证券Oracle数据库复制容灾案例 使用产品:DDS 上线时间:2006 系统环境:Oracle 10g RAC  IBM AIX5L 应用系统:恒生 证 ...

  7. 手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

    大家好,我是阿辰,今天手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示 上次有粉丝说,那个是ios手机,安卓手机现在需要root权限才可以安装证书,那么今天就不以手机为例,以电脑PC端为 ...

  8. 『Oracle数据复制容灾案例系列』中银国际证券Oracle容灾案例

    『Oracle数据复制容灾案例系列』   中银国际证券Oracle数据库容灾案例 使用产品:DDS 上线时间:2007 系统环境:Oracle 10g RAC 惠普 安腾 IA 64 HPUX 11. ...

  9. 『 云原生·Docker』Docker容器数据卷

    系列文章目录 本系列主要分为以下六大部分,正在更新中,尽请期待! 『 云原生·生之门』 『 云原生·前置知识』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSp ...

最新文章

  1. 为什么阿里巴巴禁止使用存储过程?
  2. 计算机二级公共基础知识证书,计算机二级公共基础知识
  3. Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装....
  4. Ajax响应处理数据的三种格式(主要使用gson包)
  5. 如何防止表单的重复提交
  6. node.js微博案例第二讲
  7. python数独游戏源代码100行_python实现自动解数独小程序
  8. 台式计算机怎么设置屏幕常亮,怎么设置电脑屏幕一直亮着
  9. 跟据URL来实现WebService
  10. android traceview工具,[Android]Android TraceView工具使用
  11. 零元学Expression Design 4 - Chapter 4 教你如何自制超炫笔刷
  12. R 语言图形函数 par()参数应用举例
  13. Android实验五-组件通信2
  14. 小程序云开发实现微信支付完整代码
  15. TortoiseGit设置中没有远端设置问题
  16. 计算机英语大专期末考试,电子科技大学《大学英语2(专科)》20春期末考试【标准答案】...
  17. 汇市经典好文:Y先生稳定赚18.2万美金
  18. 不使用除法的“除法”
  19. 最详细Vuex教程(超详细)-基本使用
  20. 照片怎么在线压缩?怎么压缩照片大小?

热门文章

  1. uni-app base64加密解密
  2. 超棒的CSS开源UI界面元素类库 - TopCat
  3. 算法:通过普利姆(Prim)算法,求出图的最小生成树
  4. 谈谈安卓的Bitmap与Drawable
  5. aleve计算机科学,多伦多大学alevel要求 多伦多大学有哪些专业
  6. [车联网安全自学篇] Car Hacking之汽车TSP (Telematics Service Provider) 服务浅析
  7. ElasticSearch学习_陶文3_时间序列数据库的秘密(3)——加载和分布式计算
  8. (十一)ApplicationContext详细介绍(上)
  9. 幸福人生讲座(五):中国人的生涯规划
  10. EXCEL 2016:IF如何表示逻辑与、逻辑或