图像增强实验

一、实验目的

  1. 掌握读、写图像的基本方法。
  2. 掌握MATLAB语言或OpenCV中图像数据与信息的读取方法。
  3. 理解图像灰度变换处理在图像增强的作用。
  4. 掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。

二、实验原理

  灰度变换是图像增强的一种重要手段,它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。

1.图像反转

灰度级范围为[0, L-1]的图像反转可由下式获得
在这里插入图片描述

2. 对数运算

有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换:
s = clog(1 + r)c为常数,r≥ 0

3.幂次变换

在这里插入图片描述

4.对比拉伸

在这里插入图片描述

在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展与拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:
其对应的数学表达式为:
在这里插入图片描述

5.直方图均衡化

灰度直方图的横坐标是灰度级,纵坐标是该灰度级频率,它是图像最基本的统计特征。依据定义,在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),且有下式成立:
在这里插入图片描述
在这里插入图片描述
式中,nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定变换函数为
在这里插入图片描述
当灰度级是离散值时,可用频数近似代替概率值,即
在这里插入图片描述
式中,l是灰度级的总数目,pr(rk)是取第k级灰度值的概率,nk是图像中出现第k级灰度的次数,n是图像中像素总数。
所以积分可以表示为下列累计分布函数
在这里插入图片描述

三、实验内容步骤(记录实验主要步骤,且在调试成功后,将结果截屏或拍照保存)

熟悉MATLAB语言或OpenCV中对图像数据读取,显示等基本函数。以MATLAB为例,需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、subplot()函数、figure()函数。

  1. 将文件夹中的任一图像文件读出,观察图像数据,将这个图像显示出来。读入不同的图像,请自己编程和调用MatlabOpenCV函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果,感受图像灰度变换处理在图像增强的作用。
import cv2  # 导入opencv库
lena_color = cv2.imread("./images/lena.jpg")  # 读取图像lena.jpg
lena_gray = cv2.cvtColor(lena_color, cv2.COLOR_BGR2GRAY)  # 将原图进行灰度化处理
# 通过窗口展示图片
cv2.imshow('lena_color', lena_color)
cv2.imshow('lena_gray', lena_gray)
cv2.waitKey(0)  # 设置waitKey(0),代表按任意键继续

在这里插入图片描述
2. 绘制图像灰度直方图的方法,对图像进行均衡化处理
将图像文件读出,用函数将彩色图像转化为灰度图像,记为变量B。请自己编程和调用函数完成如下实验。
1) 显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0, 1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。

lena=imread("./images/lena.jpg");
lena_gray1=rgb2gray(lena);
subplot(2,2,1);  %将多个图画到一个平面上的工具
imshow(lena_gray1);
title("灰色图像");
subplot(2,2,2);  %将多个图画到一个平面上的工具
imhist(lena_gray1);
title("调整前的灰度直方图");

lena_gray2=imadjust(lena_gray1,[0,0.4],[0,1],1); %对图像进行灰度调整
subplot(2,2,3);
imshow(lena_gray2);
title("imadjust灰度变换调整后图像");
subplot(2,2,4);  
imhist(lena_gray2);
title("调整后的灰度直方图");

这里是引用
2) 对B进行直方图均衡化处理,试比较与原图的异同。

%直方图均衡化
lena = imread("./images/lena.jpg");
lena1 = rgb2gray(lena);

subplot(1, 2, 1);
imshow(lena1);
title("原图");
ylim("auto");
g = histeq(lena1, 256);
subplot(1, 2, 2);
imshow(g);
title("直方图均衡化图");

直方图均衡化图像与原图相比,像素值分布更加均匀,细节更加丰富。
在这里插入图片描述
3) 对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。
在这里插入图片描述
图1.1   分段线性变换函数

lena = imread('./images/lena.jpg'); %读入原始图像
lena = rgb2gray(lena);
subplot(2, 2, 1); 
imshow(lena, []); 
title('原始图像');

%分段线性变换
[M, N] = size(lena);
lena = im2double(lena);
out = zeros(M, N);
X1 = 0.125;
Y1 = 0.250; %转折点1
X2 = 0.750;
Y2 = 0.625; %转折点2

for i = 1:M
    for j = 1:N %遍历图像每个像素
        if lena(i, j) < X1
            out(i, j) = Y1 * lena(i, j) / X1;
        elseif lena(i, j) > X2
            out(i, j) = (lena(i, j) - X2) * (1 - Y2) / (1 - X2) + Y2;
        else
            out(i, j) = (lena(i, j) - X1) * (Y2 - Y1) / (X2 - X1) + Y1;
        end
    end
end

subplot(2, 2, 2); imshow(out, []); title('变换的后图像')
subplot(2, 2, 3); imhist(lena); title('原始图像');
subplot(2, 2, 4); imhist(out); title('变换后的图像')

在这里插入图片描述
相同点:处理后使得图像更加清晰
不同点:实现图像增强方式不同,直方图均衡化处理使像素按值的概率均匀分布,而分段线形变换处理则是通过简单地对小像素值进行拉伸处理来实现增强图像对比度的目的。

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,那我来介绍一下Matlab图像增强实验实验目的、实验内容与设计。 实验目的: 通过本实验,学生应该掌握Matlab实现图像增强的基本方法和技术,包括对比度增强、直方图均衡化、空间滤波等。同时,也应该了解各种方法的优缺点和应用场景,为后续的图像处理工作打下基础。 实验内容: 1.对比度增强:了解图像的灰度分布情况,设计合适的灰度变换函数来增强图像对比度。可以使用imadjust函数实现对比度增强。 2.直方图均衡化:将图像的灰度直方图进行均衡化,使图像的灰度分布更加均匀,从而增强图像的视觉效果。可以使用histeq函数实现直方图均衡化。 3.空间滤波:使用一些滤波器对图像进行空间滤波,如均值滤波、中值滤波、高斯滤波等。可以使用fspecial函数生成滤波器的模板,使用imfilter函数实现滤波效果。 实验设计: 1.准备一张需要进行增强处理的图像,比如一张自然风景图或人物照片。 2.对比度增强实验:使用imadjust函数进行对比度增强,观察增强后的图像对比度是否有所提高。 3.直方图均衡化实验:使用histeq函数进行直方图均衡化,观察均衡化后的图像灰度分布是否更加均匀,视觉效果是否更好。 4.空间滤波实验:使用fspecial函数生成不同的滤波器模板,如均值滤波、中值滤波、高斯滤波等,使用imfilter函数对图像进行滤波处理,观察不同滤波器对图像的影响,比较各种滤波器的优缺点。 5.总结分析:根据实验结果,总结对比度增强、直方图均衡化和空间滤波的优缺点及适用场景,为后续的图像处理工作做好准备。 希望以上介绍能够帮助到您,如有任何问题欢迎随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值