数字图像处理实验报告(1)
数字图像处理实验报告
(1)
班级:
姓名:
学号:
一、上机题目
1-0、基本要求
1、显示一个灰度图象(在p01-p10中选)和彩色图象(在p13-p14中选);
2、观察灰度图象和彩色图象的数据矩阵和文件内容;
3、熟悉灰度图象、二值图象、彩色图象和索引图象之间的变换。
1-1、计算图象的统计参数
1、对图象p02计算其灰度的熵
1-2、图象的灰度变换
1、对图象p04实施灰度平方变换
要求:显示变换前后2幅图象和2幅直方图。
1-3、空域平滑
1、对图象p04施加高斯噪声和椒盐噪声并实施中值滤波。
1-4、空间锐化
1、根据Sobel 算子,按照公式4.3.10和公式4.3.11对图象p04实施空间锐化
二、程序
1-0、基本要求
I=imread('p04.tif' ); %读入灰度图像P04
imfinfo('p04.tif' ) ;%显示灰度图像的信息
J=imread('p14.jpg' ); %读入彩色图像P14
imfinfo('p14.jpg' ) ;%显示彩色图像的信息
%图像类型转换
J1 = rgb2ind(J,128); %转换为索引图像
J2 = rgb2gray(J); %转换为灰度图像
J3 = im2bw(J2); %转换为二值图像
figure %显示图像
subplot(2,2,1);imshow(I); title(' 灰度图像' )
subplot(2,2,2);imshow(J); title('RGB' )
subplot(2,2,3);imshow(J2); title(' 灰度图像' )
subplot(2,2,4);imshow(J3); title(' 二值图像' )
figure
imagesc(J1);
colormap(map);
title(' 索引图像' )
1-1、计算图像灰度的熵
I=imread('p02.tif' );
I=double(I);
[C,R]=size(I); %求图像的规格
M=C*R; %图像像素点的总个数
H=0; %熵的初值
L=256; %图像的灰度级
for k=1:256
n(k)=0;
end
for i=1:C
for j=1:R
J=I(i,j)+1; %I(i,j)范围是0~255,加一1~256,获取图像的灰度级 n(J)=n(J)+1; %统计n
end
end
for k=1:L
P(k)=n(k)/M; %计算每一个灰度级像素点所占的概率 if P(k)~=0; %去掉概率为0的像素点
H=-P(k)*log2(P(k))+H; %求熵值的公式
end
end
H
1-2、图象的灰度平方变换
I=imread('p04.tif' );
I1=double(I);
[C,R]=size(I);
L=256;
squ=0;
for i=1:C
for j=1:R
squ=I1(i,j)*I1(i,j);
J1(i,j)=squ;
end
end
J=mat2gray(J1);%将一个数据矩阵转换成一幅灰度图象
subplot(2,2,1),imshow(I);title(' 原图像' );
subplot(2,2,2),imshow(J);title(' 灰度平方变换后的图像' );
subplot(2,2,3),imhist(I);
subplot(2,2,4),imhist(J)
1-3、空域平滑(施加高斯噪声和椒盐噪声并实施中值滤波)
I=imread('p04.tif' );
M=imnoise(I,'gaussian' ,0,0.02); %给图像加入高斯噪声,均值为0,方差为0.02 N=imnoise(I,'salt & pepper',0.08); %给图像加入椒盐噪声
M=im2double(M);
N=im2double(N);
P1=wiener2(M,[5 5]);
subplot(2,2,1),imshow(I);title(' 原图' );
subplot(2,2,2),imshow(M);title(' 高斯噪声' );
subplot(2,2,3),imshow(N);title(' 椒盐噪声' );
subplot(2,2,4),imshow(P);title('5*5滤波' );
1-4、Sobel 算子空间锐化
I=imread('p04.tif' );
f=im2double(I);
inline g = imsobel(f,T);%创建新函数
T=0.3;
fs = size(f);
m = fs(1,1);
n = fs(1,2);
g = f;
for i = 2:m-1
for j = 2:n-1
sobel_1 = (f(i-1,j+1) - f(i-1,j-1)) + 2*(f(i,j+1) - f(i,j-1)) ... + (f(i+1,j+1) - f(i+1,j-1));
sobel_2 = (f(i+1,j-1) - f(i-1,j-1)) + 2*(f(i+1,j) - f(i-1,j)) ... + (f(i+1,j+1) - f(i-1,j+1));
g(i,j) = abs(sobel_1) + abs(sobel_2);
end
end
for i = 1:m-1
for j = 1:n-1
if g(i,j) > T
g(i,j) = g(i,j);
else
g(i,j) = 0;
end
end
end
subplot(2,1,1),imshow(I);title(' 原图像' );
subplot(2,1,2),imshow(g);title('sobel 算子锐化图像' );
三、运行结果
1-0、基本要求
1-1、计算图像灰度的熵
1-2、图象的灰度平方变换
1-3、空域平滑(施加高斯噪声和椒盐噪声并实施中值滤波)
1-4、Sobel 算子空间锐化