当前位置: 首页 > news >正文

毕设分享 opencv图像增强算法系统

文章目录

0 简介

今天学长向大家分享一个毕业设计项目

毕业设计 opencv图像增强算法系统

项目运行效果:

🧿项目分享:见主页任意置顶文章

1. 基于直方图均衡化的图像增强

直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。

彩色图像的直方图均衡化实现:

#include #include #include using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("Test.jpg", 1); if (image.empty()) { std::cout << "打开图片失败,请检查" << std::endl; return -1; } imshow("原图像", image); Mat imageRGB[3]; split(image, imageRGB); for (int i = 0; i < 3; i++) { equalizeHist(imageRGB[i], imageRGB[i]); } merge(imageRGB, 3, image); imshow("直方图均衡化图像增强效果", image); waitKey(); return 0; }

直方图均衡化增强前原图像:

直方图均衡化增强后效果:

2. 基于拉普拉斯算子的图像增强

使用中心为5的8邻域拉普拉斯算子与图像卷积可以达到锐化增强图像的目的,拉普拉斯算子如下图所示:

拉普拉斯算子可以增强局部的图像对比度:

#include #include #include using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("Test.jpg", 1); if (image.empty()) { std::cout << "打开图片失败,请检查" << std::endl; return -1; } imshow("原图像", image); Mat imageEnhance; Mat kernel = (Mat_(3, 3) << 0, -1, 0, 0, 5, 0, 0, -1, 0); filter2D(image, imageEnhance, CV_8UC3, kernel); imshow("拉普拉斯算子图像增强效果", imageEnhance); waitKey(); return 0; }

拉普拉斯算子增强前原图像:

拉普拉斯算子增强后效果:

3. 基于对数Log变换的图像增强

对数变换可以将图像的低灰度值部分扩展,显示出低灰度部分更多的细节,将其高灰度值部分压缩,减少高灰度值部分的细节,从而达到强调图像低灰度部分的目的。变换方法:

对数变换对图像低灰度部分细节增强的功能过可以从对数图上直观理解:

x轴的0.4大约对应了y轴的0.8,即原图上00.4的低灰度部分经过对数运算后扩展到00.8的部分,而整个0.41的高灰度部分被投影到只有0.81的区间,这样就达到了扩展和增强低灰度部分,压缩高灰度部分的值的功能。

从上图还可以看到,对于不同的底数,底数越大,对低灰度部分的扩展就越强,对高灰度部分的压缩也就越强。

#include #include using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("Test.jpg"); Mat imageLog(image.size(), CV_32FC3); for (int i = 0; i < image.rows; i++) { for (int j = 0; j < image.cols; j++) { imageLog.at(i, j)[0] = log(1 + image.at(i, j)[0]); imageLog.at(i, j)[1] = log(1 + image.at(i, j)[1]); imageLog.at(i, j)[2] = log(1 + image.at(i, j)[2]); } } //归一化到0~255 normalize(imageLog, imageLog, 0, 255, CV_MINMAX); //转换成8bit图像显示 convertScaleAbs(imageLog, imageLog); imshow("Soure", image); imshow("after", imageLog); waitKey(); return 0; }

对数Log变换增强前原图像:

对数Log变换增强后效果:

对数变换对于整体对比度偏低并且灰度值偏低的图像增强效果较好。

4. 基于伽马变换的图像增强

伽马变换主要用于图像的校正,将灰度过高或者灰度过低的图片进行修正,增强对比度。变

伽马变换对图像的修正作用其实就是通过增强低灰度或高灰度的细节实现的,从伽马曲线可以直观理解:

γ值以1为分界,值越小,对图像低灰度部分的扩展作用就越强,值越大,对图像高灰度部分的扩展作用就越强,通过不同的γ值,就可以达到增强低灰度或高灰度部分细节的作用。

伽马变换对于图像对比度偏低,并且整体亮度值偏高(对于于相机过曝)情况下的图像增强效果明显。

#include #include using namespace cv; int main(int argc, char *argv[]) { Mat image = imread("Test.jpg"); Mat imageGamma(image.size(), CV_32FC3); for (int i = 0; i < image.rows; i++) { for (int j = 0; j < image.cols; j++) { imageGamma.at(i, j)[0] = (image.at(i, j)[0])*(image.at(i, j)[0])*(image.at(i, j)[0]); imageGamma.at(i, j)[1] = (image.at(i, j)[1])*(image.at(i, j)[1])*(image.at(i, j)[1]); imageGamma.at(i, j)[2] = (image.at(i, j)[2])*(image.at(i, j)[2])*(image.at(i, j)[2]); } } //归一化到0~255 normalize(imageGamma, imageGamma, 0, 255, CV_MINMAX); //转换成8bit图像显示 convertScaleAbs(imageGamma, imageGamma); imshow("原图", image); imshow("伽马变换图像增强效果", imageGamma); waitKey(); return 0; }

伽马变换增强前原图像:

伽马变换增强后效果:

软件实现效果

最后

🧿项目分享:见主页任意置顶文章

http://www.jsqmd.com/news/1360396/

相关文章:

  • 技术拆解空调省电真相:从APF能效到电费计算模型
  • 六西格玛绿带考试考什么内容——2026年最新大纲详解 - 众智商学院cppm官方
  • 常见的排序算法1
  • 大模型RL训练中训推一致性的挑战与华为昇腾解决方案
  • 植物大战僵尸杂交版专属插件|主播爆款同款,开箱即用
  • 宁波热门蛋糕甜品培训机构|港焙学校真实测评 - 港焙西点-知美人美学
  • 吉安手机回收价格与渠道怎么选?2026正规上门回收与避坑指南 - 新闻快传
  • 上海全日制复读择校实测:两大老牌办学平台四项核心指标深度评测 - 新闻快传
  • 全封闭管理+精品小班,成都竞元单招带你吃透职测每一分 - 成都竞元单招
  • Flutter与OpenHarmony实现数独游戏撤销功能的技术解析
  • G-Helper启动问题终极解决方案:5步快速排查指南
  • 串口屏强电磁抗干扰实测 适配储能强干扰环境
  • Meta广告排序实战:多阶段序列模型与LLM扩展定律的工程启示
  • Matlab机械臂三维轨迹规划与优化实践
  • 《嵌入式系统》全套PPT课件
  • 终极指南:用Sunshine打造跨设备游戏流媒体系统,免费享受低延迟游戏体验
  • 六西格玛黑带考试内容和绿带有什么区别——从绿带到黑带完整进阶指南 - 众智商学院cppm官方
  • Abaqus FE-RVE微力学建模插件(支持厚界面建模)|含安装包、实操视频与详细使用指南
  • AI辅助全栈开发:Vue3+ElementPlus企业级应用实战
  • 2026年南京旅行社**前十名,正规纯玩团跟团游推荐,高评分口碑社品质保障 - 跟我去旅游
  • 2026年谷歌独立站外贸推广代运营服务商/公司哪家靠谱?昊客网络 - 一风AI推广
  • 2026年电子制造业考SCMP选哪个方向?元器件采购和全球供应链风险管控 - 中研供应链官方
  • Unity多摄像机交互设计:从王者荣耀界面到通用坐标转换解决方案
  • 2026年注意事项:重庆市儿童眼镜视功能检查哪里做,区县选择指南与准备事项,附服务流程及常见问题解答 - 小校长
  • 免重光栅化可变字体变形:GPU驱动的实时平滑字形动画
  • Python图形界面(GUI)Tkinter笔记(四十五):【Treeview】“左树右表“结构控件(1)——使用【Treeview】展示纯“树”结构及与鼠标的绑定
  • PostgreSQL内核优化:从内存管理到查询执行器的深度调优实践
  • 3分钟搞定Windows风扇控制:告别噪音,拥抱静音的终极指南
  • PlayCover终极指南:在Apple Silicon Mac上运行iOS游戏和应用的完整教程
  • 瑞祥商联卡线上回收怎么做?操作要点合集 - 圆圆收