数字图像处理-图像的灰度变换与空间滤波

1、利用伽马校正的方法,选择合适的γ值,对偏亮(BC_bright.bmp)和偏暗(BC_dark.bmp)的B超图像进行伽马校正。

clc;clear all;
f_bright=imread('./BC_bright.bmp');%读取高亮度图片
f_dark=imread('./BC_dark.bmp');%读取高亮度图片
%将图片转为double类型
f_bright=im2double(f_bright);
f_dark=im2double(f_dark);
figure;
subplot(2,2,1);
imshow(f_bright);%显示图片
title('偏亮B超图片');
subplot(2,2,2);
imshow(f_dark);%显示图片
title('偏暗B超图片');
%高亮度图片伽马变换
Gama_bright=2;
g_bright=f_bright.^Gama_bright;
subplot(2,2,3);
imshow(g_bright);%显示图片
title('偏亮B超图片:伽马系数:2');
%低亮度图片伽马变换
Gama_dark=0.3;
g_dark=f_dark.^Gama_dark;
subplot(2,2,4);
imshow(g_dark);%显示图片
title('偏暗B超图片:伽马系数:0.3');

实验结果:

662826c7a8bd44889c0de4d3a0cb5d9b.png

2、利用直方图均衡法,对Rice1.tif和Rice2.tif分别实施灰度变换,比较变换前后图像的视觉效果及各自的灰度直方图,画出直方图均衡化的灰度变换曲线。

 

clc,clear all;
f1=imread('./Rice1.tif');
f1=im2double(f1);%将图片转为double类型
f2=histeq(f1);%直方图均衡化
figure;
subplot(2,2,1);
imshow(f1);%输入图片
title('输入图片Rice1.tif');
 
subplot(2,2,2);
imhist(f1);%输入图片直方图
title('输入图片灰度直方图');
 
subplot(2,2,3);
imshow(f2);%变换输出图片
title('变换后输出图片');
 
subplot(2,2,4);
imhist(f2);%输入图片
title('变换后输出图片灰度直方图');
 
figure;
f3=imread('./Rice2.tif');
f3=im2double(f3);%将图片转为double类型
f4=histeq(f3);%直方图均衡化
subplot(2,2,1);
imshow(f3);%输入图片
title('输入图片Rice2.tif');
 
subplot(2,2,2);
imhist(f3);%输入图片直方图
title('输入图片灰度直方图');
 
subplot(2,2,3);
imshow(f4);%变换输出图片
title('变换后输出图片');
 
subplot(2,2,4);
imhist(f4);%输入图片
title('变换后输出图片灰度直方图');
 
figure;
hnorm=imhist(f1)./numel(f1);%归一化的直方图 hnorm,每个灰度级的频率除以像素总数,得到该灰度级的概率
cdf=cumsum(hnorm);%灰度值小于或等于当前值的像素的累积概率。
hnorm2=imhist(f3)./numel(f3);
cdf2=cumsum(hnorm2);
x=linspace(0,1,256);%归一化灰度值的横坐标
plot(x,cdf,'r');
hold on;
plot(x,cdf2,'b');
axis([0 1 0 1]);
set(gca,'xtick',0:.2:1);
set(gca,'ytick',0:.2:1);
xlabel('输入灰度值');
ylabel('输出灰度值');
legend('Rice1.tif','Rice2.tif')

 实验结果:

acca072fbf0f412f9b7f21ef5287ef8e.png

 3、利用拉普拉斯滤波增强图像边缘的方法锐化图像Moon.tif的边缘,比较4邻域与8邻域拉普拉斯高增益滤波器的增强效果。

clc,clear all;
f=imread('./Moon.tif');
I=im2double(f);%图片转为double类型,避免数据溢出
w1=fspecial('laplacian',0)%生成拉普拉斯滤波器,4邻域拉普拉斯算子
Hp1=imfilter(I,w1,'replicate');%提取边缘
g4=I-Hp1;%通过从原始图像中减去滤波后的图像,可以增强原始图像中的边缘
w2=[1 1 1,1 -8 1,1 1 1];%8邻域拉普拉斯算子
Hp2=imfilter(I,w2,'replicate');
g8=I-Hp2;
 
figure;
subplot(1,3,1);
imshow(I);%输入图片
title('输入图片');
 
subplot(1,3,2);
imshow(g4)
title('4邻域拉普拉斯算子增强');
 
subplot(1,3,3);
imshow(g8)
title('8邻域拉普拉斯算子增强');

 实验结果:

f8f77a53fce54a9eb16928eba2d08b4a.png

 实验总结:

  1. 伽马变换是通过对图像进行幂次运算来调整像素的亮度,用于调整图像的亮度和对比度。①当γ>1 时,图像变暗,对比度增加。这是因为暗区域的像素值增加得比亮区域的像素值更多,从而增加了图像的对比度。②当γ=1 时,图像没有变化,因为输入图像的每个像素值都简单地映射到它自己。③当 0<γ<1 时,图像变亮,对比度减少。这是因为亮区域的像素值增加得比暗区域的像素值更多,从而减少了图像的对比度。通常情况下,γ值的选取范围为0.2到5之间。
  2. 直方图均衡化就是把一个已知灰度概率密度分布的图像经过一种变换,使之演变为一幅具有均匀灰度概率密度分布的新图像。通过imhist()函数来显示图像的直方图,用于查看图像的像素值分布。函数histeq()可以实现直方图的均衡化,通过对比变换前后的图片以及灰度直方图可以看出直方图均衡化能够重新分配图像的灰度级,使得变换后的图像直方图尽可能均匀。对于原始图像中对比度不足的情况,直方图均衡化后显著改善视觉效果,使得图像看起来更加清晰和鲜明。对于灰度变换曲线,可以先归一化的直方图,将每个灰度级的频率除以像素总数,得到该灰度级的概率;然后对归一化直方图进行累积求和,得到CDF,CDF表示图像中所有像素灰度值小于或等于某一特定灰度值的累积概率;接着创建映射函数,归一化灰度值的横坐标,然后绘制图像。
  3. 锐化边缘的目的是增强图像中边缘的清晰度和可见性,使得边缘更加鲜明和突出。通常通过高通滤波器(如拉普拉斯滤波器)来实现,这些滤波器通过增强图像的高频分量来突出边缘。4邻域拉普拉斯滤波器只考虑像素的上下左右四个邻居,优点是计算简单,速度快,但它对边缘的响应不如8邻域滤波器那么强。8邻域拉普拉斯滤波器考虑了像素的八个邻居,包括对角线上的像素,由于它考虑了更多的邻居像素,因此对边缘的响应通常更强,能够更有效地突出图像的边缘细节,因为它对噪声的放大作用较小。在评判4邻域还是8邻域作用效果时,如果图像中边缘的清晰度至关重要,8邻域滤波器可能是更好的选择;如果需要快速处理或减少噪声放大,4邻域滤波器可能更合适。在本实验中,由于要锐化边缘,因此我认为8邻域的处理效果更好。

 

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值