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

[数字图像处理]实验三:直方图增强

目录

一、实验目的

二、实验原理

三、实验内容(附代码)

四、实验结果及分析

五、实验小结   


一、实验目的

1.了解图像增强的意义和目的

2.掌握各种图像增强的基本原理和方法

3.使用MATLAB实现图像增强

二、实验原理

图像增强方法从增强的作用域出发可分为空间域和频率域。

亮度变换是基于图像的空间域处理,亮度变换函数对图像的像素进行操作。亮度变换函数通常写为

s=T(r),其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。

(1)函数imadjust 用于对灰度级图像进行灰度变换

一般语法格式为g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma)  该函数将图像f中的灰度值映射为图像g 中的新值,即 low_in 至 high_in 之间的值映射到 low_out 至 high_out 之间的值。对于函数imadjust,除了 f 和 gamma ,其所有输入值被限定在0和1之间。如下图(图1)所示,参数 gamma 指定从图像f中的灰度值映射生成图像 g 的曲线的形状。

图 1  gamma变换曲线

(2)对数变换

对数变换通过表达式 g=c*log(1+f) 实现。gamma 曲线的形状是可变的,但是对数函数的形状固定。如下图(图2)所示,对数变换的一项主要应用是压缩动态范围。

图 2  对数函数变换

三、实验内容(附代码)

(1)gamma变换:a.设置gamma值为确定值(0.2),读取并显示灰度图像,创建一个与原始图像大小相同的全零矩阵,通过for循环遍历图像的每个像素并将其像素值进行gamma曲线变换后存入矩阵,再将矩阵转为灰度图像并显示经过gamma变换后的图像。b.使用工具箱中imadjust函数进行gamma变换;对比两种处理方法结果的差异。

(2)对数变换:设置对数变换参数v为确定值(6.6),将图像转换为双精度浮点数并归一化到[0,1]范围。对归一化后的图像进行对数变换后显示图像。

实验代码:

gamma=0.2;
img2=imread('C:\Users\Desktop\灰度图片.jpg');
subplot(2,2,1);
imshow(img2);
title('原始图像');
img2=double(img2);
[row,col]=size(img2);
new_img=zeros(row,col);
for i=1:row
for j=1:col
new_img(i,j)=img2(i,j).^gamma;
end
end
new_img=mat2gray(new_img);
subplot(2,2,2);
imshow(new_img);
title('对像素进行gamma变换');
%测试与imadjust比较
g=imadjust(B,[ ],[ ],0.2);
subplot(2,2,3);
imshow(g);
title('使用gamma函数变换')
%对数函数
v=6.6;
r=mat2gray(double(B));
S=log(1+v*r)/(log(v+1));
subplot(2,2,4);
imshow(S);
title('对数变换图像')

四、实验结果及分析

图 3 实验结果1 (gamma<1)

图 4 实验结果2 (gamma>1)

图 5 实验结果3_对数变换

实验分析:

如图3右图所示,基于for循环对像素进行gamma变换和使用gamma函数变换的结果相同。图3中gamma变换的值为0.2(0.2<1),可以发现处理后的图像变亮,灰度值被映射加权至较高的输出值。图4中,gamma=10,可以发现处理后的图像变暗,灰度值被映射加权至较低的输出值。图5中对数变换的图像同样是变亮,因为对数变换函数的形状与gamma<1的伽马曲线形状相似,但是图像的动态范围被压缩。

实验小结   

  图像增强是一种改善图像视觉效果的技术。本次实验我们着重实现了gamma曲线变换和对数变换。灰度变换增强是一种点运算,可以使图像动态范围增大,扩展图像对比度,使图像变清晰,在实际应用中需要根据具体需求选择合适的图像增强方法。


文章转载自:

http://X6iVub4E.rzbgn.cn
http://UhOxIVeY.rzbgn.cn
http://cIjwSYaj.rzbgn.cn
http://OMBhSxFC.rzbgn.cn
http://1Ah7hCM5.rzbgn.cn
http://N1dNfm2o.rzbgn.cn
http://g4ranqTM.rzbgn.cn
http://MTo1taDO.rzbgn.cn
http://xdZ7Nhxh.rzbgn.cn
http://Xy6U38UF.rzbgn.cn
http://y30xsMTp.rzbgn.cn
http://e8n2G6nz.rzbgn.cn
http://wSkRYkNK.rzbgn.cn
http://aaRyqmz2.rzbgn.cn
http://XHp4Cve3.rzbgn.cn
http://a3Sxu6hJ.rzbgn.cn
http://0UZhM9Kp.rzbgn.cn
http://0Z7MQntb.rzbgn.cn
http://Zb7xbnCb.rzbgn.cn
http://7mhf11pN.rzbgn.cn
http://YGyxC76M.rzbgn.cn
http://m8WHjcEh.rzbgn.cn
http://rC8wfGa9.rzbgn.cn
http://arEjexO5.rzbgn.cn
http://lm6tXvug.rzbgn.cn
http://T6D9SUX4.rzbgn.cn
http://zJvtFs2o.rzbgn.cn
http://EQ80ZgrQ.rzbgn.cn
http://JQaK6bpk.rzbgn.cn
http://aZKyJXwS.rzbgn.cn
http://www.dtcms.com/a/52608.html

相关文章:

  • 快速生成viso流程图图片形式
  • web渲染技术与SEO—第一章—SEO详解
  • Redis——快速入门
  • Redis 主从复制、哨兵与集群的关系及工作原理详解
  • 关于 QPalette设置按钮背景未显示出来 的解决方法
  • Spring 为什么要有依赖注入
  • Python快捷手册
  • HCIA-IP路由动态-RIP
  • Qt5 C++ QMap使用总结
  • Unity Shader学习日记 part6 基本光照模型
  • CES Asia 2025增设未来办公教育板块,科技变革再掀高潮
  • Trae 是一款由 AI 驱动的 IDE,让编程更加愉悦和高效。国际版集成了 GPT-4 和 Claude 3.5,国内版集成了DeepSeek-r1
  • 【CXX】4.4 其他构建系统
  • 分布式多卡训练(DDP)踩坑
  • 解锁Android RemoteViews:跨进程UI更新的奥秘
  • 软考架构师笔记-存储管理
  • 边缘计算在豪越智慧消防中的应用探索
  • pgsql行列转换
  • 大数据学习(56)-Impala
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • kafka配置
  • 迷你世界脚本文字板接口:Graphics
  • 掌握 Python 高级特性:深入理解迭代器与生成器
  • 城市地质安全专题连载⑧ | 强化工程地质安全保障力度,为工程项目全栈护航
  • 【Aioredis实战总结】如何修改aioredis的最大连接数。
  • 带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)
  • 泛型存储,在需求不稳定的中小型项目里,多用JSON作为存储类型可以带来哪些收益
  • perl初试
  • 网络服务之SSH协议
  • 【计算机视觉】手势识别