数字图像处理实验—— 图像灰度变换与空域滤波

目录

1.生成并绘制图像直方图

2.灰度变换

3.直方图均衡化

4. 图像中值滤波


1.生成并绘制图像直方图

(1)查阅教材 3.3 节关于直方图相关内容,理解其基本概念;

(2)查阅 matlab 图像处理工具箱中函数 imhist,熟悉其基本语法实现直方图的统计;

(3)利用 imhist 函数或者 bar 函数绘制直方图;

(4)观察并分析不同图像的直方图的差异。

figure('Name', '图像图统计实验图直方图匹配','NumberTitle','off')  % 创建一个图窗并指定 Name 属性。'NumberTitle','off' 不显示编号
img1 = imread('1.tif');
img2 = imread('2.tif');
img3 = imread('3.tif');
img4 = imread('4.tif');

subplot(2,4,1);
imshow(img1);
title("1.tif");
subplot(2,4,2);
imshow(img2);
title("2.tif");
subplot(2,4,3);
imshow(img3);
title("3.tif");
subplot(2,4,4);
imshow(img4);
title("4.tif");

subplot(2,4,5);
imhist(img1,256);   % 显示图像的直方图。
title("1.tif 的直方图");
subplot(2,4,6);
imhist(img2,256); 
title("2.tif 的直方图");
subplot(2,4,7);
imhist(img3,256); 
title("3.tif 的直方图");
subplot(2,4,8);
imhist(img4,256); 
title("4.tif 的直方图");

2.灰度变换

(1)查阅教材 3.1-3.2 节内容,理解灰度变换的概念和步骤;

(2)查阅 matlab 图像处理工具箱中函数 imadjust,熟悉其基本语法。

(3)修改 imadjust 函数参数(重点调整伽马值),实现并对比不同参数配置下的图像 灰度变换结果。 

figure('Name', '灰度变化实验图','NumberTitle','off')  % 创建一个图窗并指定 Name 属性。'NumberTitle','off' 不显示编号
img1 = imread('1.tif');
img2 = imread('2.tif');

subplot(2,3,1);
imshow(img1);
title("1.tif");

% 编程实现伽马变化,像素点操作
J = im2double(img1);
C = 1;
r = 0.5;
N = C*(J .^ r);
subplot(2,3,2);
imshow(N);
title("C=1 r=1.5");  % x小则亮

%如果 gamma 小于 1,则 imadjust 会对映射加权,使之偏向更高(更亮)输出值。
%如果 gamma 大于 1,则 imadjust 会对映射加权,使之偏向更低(更暗)输出值。
%如果 gamma 是 1×3 向量,则 imadjust 会对每个颜色分量或通道分别应用不同的 gamma。
subplot(2,3,3);
I = imadjust(img1,[],[],r);  % 内置函数实现gamma变换
imshow(I);
title("imadjust实现 r=1.5"); 

%--------------------------------------------------------------------------%
subplot(2,3,4);
imshow(img2);
title("2.tif");

J = im2double(img2);
N = C*(J .^ r);
subplot(2,3,5);
imshow(N);
title("C=1 r=1.5");  

subplot(2,3,6);
I = imadjust(img2,[],[],r);
imshow(I);
title("imadjust实现 r=1.5"); 

3.直方图均衡化

(1)查阅教材 3.3 节内容,理解直方图均衡化的概念和步骤;

(2)查阅 matlab 图像处理工具箱中函数 histeq,熟悉其基本语法;

(3)利用 histeq 函数实现图像直方图均衡化处理,并对比分析图像处理前后差异。

figure('Name', '直方图均衡化','NumberTitle','off')  % 创建一个图窗并指定 Name 属性。'NumberTitle','off' 不显示编号
img1 = imread('1.tif');
img2 = imread('2.tif');
J1 = histeq(img1);   %均衡
J2 = histeq(img2);


subplot(2,4,1);
imshow(img1);
title("原图1.tif");

subplot(2,4,2);
imhist(img1);
title("原图1.tif直方图");

subplot(2,4,3);
imhist(J1);
title("1.tif均衡直方图");

subplot(2,4,4);
imshow(J1);
title("均衡1.tif");
%--------------------------------------%
subplot(2,4,5);
imshow(img2);
title("原图2.tif");

subplot(2,4,6);
imhist(img2);
title("原图2.tif直方图");

subplot(2,4,7);
imhist(J2);
title("2.tif均衡直方图");

subplot(2,4,8);
imshow(J2);
title("均衡2.tif");

4. 图像中值滤波

(1)查阅教材 3.5.2 节内容,理解中值滤波的概念和步骤;

(2)利用 matlab 基本的矩阵操作和语法编程实现中值滤波函数

medianFilter: B = medianFilter(A, [m n])

% A 为输入图像,B 为输出图像,模板大小为 m×n,不处理边界

(3)利用自己实现的函数 medianFilter 对给定的图像进行滤波,并与 matlab 工具箱 中自带的中值滤波函数 medfilt2 进行比较。

figure('Name', '中值滤波实验','NumberTitle','off')  % 创建一个图窗并指定 Name 属性。'NumberTitle','off' 不显示编号
img1 = imread('img.tif');
img2 = imread('noiseImg.tif');

n=7;

J1=medfilt2(img1,[n,n]);
J2=medfilt2(img2,[n,n]);

subplot(2,3,1);
imshow(img1);
title("原图img.tif");

subplot(2,3,2);
B=medianFilter(img1,n,n);
imshow(B);
title("5 x 5自编中值滤波");


subplot(2,3,3);
imshow(J1);
title("5 x 5matalab中值滤波");

%----------------------------%
subplot(2,3,4);
imshow(img2);
title("原图noiselmg.tif");

subplot(2,3,5);
imshow(medianFilter(img2,n,n));
title("5 x 5自编中值滤波");

subplot(2,3,6);
imshow(J2);
title("5 x 5matalab中值滤波");

medianFliter.m

function B = medianFilter(A,m,n) % 不处理边界
[height, width]=size(A);
B=A;  %转换后的数据赋给B
for i=1:height-n+1  
    for j=1:width-n+1  
        c=A(i:i+(m-1),j:j+(n-1)); %在x1中从头取模板大小的块赋给c  
        e=c(1,:);      %e中存放是c矩阵的第一行  
        for u=2:m   %将c中的其他行元素取出来接在e后使e为一个行矩阵 
            e=[e,c(u,:)];          
        end  
        med=median(e);      %取一行的中值  
        B(i+(m-1)/2,j+(n-1)/2)=med;   %将模板各元素的中值赋给模板中心位置的元素  
    end  
end    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值