图像上机实验.docx

上传人:b****7 文档编号:25042611 上传时间:2023-06-04 格式:DOCX 页数:18 大小:873.81KB
下载 相关 举报
图像上机实验.docx_第1页
第1页 / 共18页
图像上机实验.docx_第2页
第2页 / 共18页
图像上机实验.docx_第3页
第3页 / 共18页
图像上机实验.docx_第4页
第4页 / 共18页
图像上机实验.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

图像上机实验.docx

《图像上机实验.docx》由会员分享,可在线阅读,更多相关《图像上机实验.docx(18页珍藏版)》请在冰豆网上搜索。

图像上机实验.docx

图像上机实验

实验一图像处理的基本操作

一,实验目的

1.熟悉有关数字图像处理的MATLAB基本操作和编写;

2.掌握数字图像的基本读写、显示与保存;

3.能够利用MATLAB工具箱完成图像处理的基本运算;

二,实验内容

1.

(1)读取图像并显示真彩色图像house.tiff;

(2)读取图像并显示索引色图像canoe.tif,并转换为灰度图像;

(3)读取图像并显示灰度图像rice.png,并转换为二进制图像;

(4)检测内存中的图像和保存图像;

2.查看不同分辨率下图像lena.tiff的显示结果;

3.对彩色图像Peppers.png观看GRB通道各单通道图像;

4.实现马赫带效应并画出灰度直方图。

三,代码

I=imread('house.tiff');

figure

(1)

imshow(I)

[A,map]=imread('canoe.tif');

figure

(2)

subplot(121)

imshow(A,map)

D=ind2gray(A,map);

subplot(122)

imshow(D)

G=imread('rice.png');

figure(3)

subplot(121)

imshow(G)

th=graythresh(G);H=im2bw(G,th);

subplot(122)

imshow(H)

whos;imwrite

B=imread('lena.tiff');

figure(4),

subplot(121)

imshow(B)

C=imresize(B,0.2)

subplot(122)

imshow(C)

 

D=imread('Peppers.png');

r=D,r(:

:

[23])=0;

g=D,g(:

:

[13])=0;

b=D,b(:

:

[12])=0;

figure(5),

subplot(1,3,1),imshow(r);

subplot(1,3,2),imshow(g);

subplot(1,3,3),imshow(b);

a=zeros(256,256);

fori=1:

32:

256

a(:

i:

i+32)=i;

end

figure(6);

subplot(121)

imshow(uint8(a));

subplot(122)

imhist(uint8(a));

四,实验结果

五,结果分析

从运行结果可以看出,实验还是比较成功的。

但是在做索引色那个图像的时候,如果索引色和灰度图像放在同一个figure里,索引色图像显示的也是灰色,因此我只能把索引色图像和灰度图像分开放到两个figure里。

在查看不同分辨率下图像lena.tiff的显示结果时,必须要对两个图像进行放大查看才能看出不同。

实验二图像变换1

一,实验目的

1.熟悉有关MATLAB工具箱中提供的图像变换函数;

2.掌握傅立叶变换和小波变换等常用的正交变换函数;

二,实验内容

1.对图像lena.png进行傅立叶变换和离散余弦变换,并分别求出其逆变换后重构图像的均方误差;

2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;

3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。

三,代码

%1.对图像lena.png进行傅立叶变换和离散余弦变换,

%并分别求出其逆变换后重构图像的均方误差;

clear;

clc;

I=imread('lena.png');

%傅里叶变换

figure

(1);

I1=fft2(I);

I1=fftshift(I1);

If=ifftshift(I1);

If=uint8(real(ifft2(If)));

subplot(231);

imshow(I);

subplot(232);

imshow(log(abs(I1)),[]);

subplot(233);

imshow(If);

[m,n]=size(I);%计算均方误差

fori=1:

m

forj=1:

n

temp(i,j)=(If(i,j)-I(i,j))^2;

end

end

wucha1=sum(sum(temp))

%离散余弦变换

I2=dct2(I);

I3=fftshift(I2);

Id=idct2(I2);

Id=uint8(real(Id));

subplot(234);

imshow(I);

subplot(235);

imshow(log(abs(I3)),[]);

subplot(236);

imshow(Id);

[m,n]=size(I);%计算均方误差

fori=1:

m

forj=1:

n

temp(i,j)=(If(i,j)-I(i,j))^2;

end

end

wucha2=sum(sum(temp))

%%

%2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;

X=imread('lena.png');

[c,s]=wavedec2(X,2,'bior3.7');

a1=wrcoef2('a',c,s,'bior3.7',1);

h1=wrcoef2('h',c,s,'bior3.7',1);

v1=wrcoef2('v',c,s,'bior3.7',1);

d1=wrcoef2('d',c,s,'bior3.7',1);

c1=[a1,h1;v1,d1];

c1=uint8(c1);

Xr=waverec2(c,s,'bior3.7');

figure

(2);

subplot(131);

imshow(X);

subplot(132);

imshow(c1);

subplot(133);

imshow(uint8(Xr));

[m,n]=size(X);%计算均方误差

fori=1:

m

forj=1:

n

temp(i,j)=(Xr(i,j)-I(i,j))^2;

end

end

wucha3=sum(sum(temp))

%%

%3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,

%分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。

P=imread('C:

\shiyan2\IM1.BMP');

[c,s]=wavedec2(P,3,'bior3.7');

a1=wrcoef2('a',c,s,'bior3.7',1);

h1=wrcoef2('h',c,s,'bior3.7',1);

v1=wrcoef2('v',c,s,'bior3.7',1);

d1=wrcoef2('d',c,s,'bior3.7',1);

c1=[a1,h1;v1,d1];

c1=uint8(c1);

figure(3);

subplot(131);

imshow(P);

subplot(132);

imshow(c1);

subplot(133);

imshow(uint8(a1));

四,实验结果

五,实验结果

从运行结果可以看出,实验还是比较成功的。

上图分别是1.对图像lena.png进行傅立叶变换和离散余弦变换,并分别求出其逆变换后重构图像的均方误差;2.实现图像lena.png的两层小波分解,观察分解系数并重构,求重构图像误差值;3.观察图像IM1.BMP经小波分解系数的方向性,实现三层小波分解,分别把HL,LH,HH子带置零和重构,观察重构图像跟原始图像的差异。

最后求得误差均为零,我认为这可能是重构方法均是使用matlab自带函数的原因,使得重构图像与原图几乎一样。

实验三图像变换2

一,实验目的

1.熟悉有关图像增强的直方图方法;

2.掌握傅立叶变换和离散余弦变换等常用的正交变换函数;

二,实验内容

1.实现对图像IM2.BMP进行直方图均衡化,从而达到增强图像的目的,观察图像直方图的前后变化;

2.实现对图像IM3.BMP加入某种噪声(如椒盐噪声等),运用低通滤波和中值滤波分别进行图像平滑;

3.实现对图像IM4.BMP的同态增强:

对照明分量和反射分量进行同态滤波。

三,代码

clear;

clc;

%实现对图像IM2.BMP进行直方图均衡化,从而达到增强图像的目的,

%观察图像直方图的前后变化

i=imread('IM2.BMP');

j=histeq(i);

figure

(1);

subplot(221);

imshow(i);

title('原始图像');

subplot(222);

imshow(j);

title('均衡化图像');

subplot(223);

imhist(i,64);

title('原始直方图');

subplot(224);

imhist(j,64);

title('均衡化直方图');

%实现对图像IM3.BMP加入某种噪声(如椒盐噪声等),

%运用低通滤波和中值滤波分别进行图像平滑

k=imread('IM3.BMP');

l=imnoise(k,'salt&pepper',0.02);

figure

(2);

subplot(221);

imshow(k);

title('原始图像');

subplot(222);

imshow(l);

title('噪声图像');

p=medfilt2(l);

subplot(223);

imshow(p);

title('中值滤波图像');

f=double(l);

g=fftshift(fft2(f));

[N1,N2]=size(g);

n=2;%butterworth滤波器的参数n=2

d0=50;%d0为截止频率(与原点的距离)

n1=fix(N1/2);

n2=fix(N2/2);

fori=1:

N1

forj=2:

N2

d=sqrt((i-n1)^2+(j-n2)^2);

h=1/(1+0.414*(d/d0)^2*n);

result(i,j)=h*g(i,j);

end

end

result=ifftshift(result);

x2=ifft2(result);

x3=uint8(real(x2));

subplot(224);

imshow(x3);

title('butterworth低通滤波图像');

%实现对图像IM4.BMP的同态增强:

对照明分量和反射分量进行同态滤波

%图像的动态范围压缩,图像的对比度增强,类似于高通滤波

clear;

figure;

I=imread('IM4.BMP');

I1=log(double(I)+1);

I2=fft2(I1);

n=3;

d0=5;

rh=0.1;

rl=0.05;

[row,col]=size(I2);

fori=1:

row

forj=1:

col

d1(i,j)=sqrt(i^2+j^2);

h(i,j)=rl+(rh/(1+(d0/d1(i,j)^(2*n))));

end

end

I3=I2.*h;

I4=ifft2(I3);

I5=exp(I4)-1;

subplot(121);

imshow(I);

title('原始图像');

subplot(122);

imshow(I5);

title('同态滤波');

 

四,实验结果

五,结果分析

从运行结果可以看出,实验还是比较成功的。

但在加入椒盐噪声后进行高斯低通滤波的实验中,高斯低通滤波并不能完美的把噪声滤掉,图像中依然存在噪声,虽然变得不明显了。

我想可能是算子取得不好,导致了高斯低通滤波的失败。

 

实验四图像处理

一、实验目的

1.掌握图像分割中的四叉树区域分割与合并法;

2.掌握图像分割中的阈值分割法;

3.了解图像纹理分析和特征提取方法;

4.了解图像目标识别方法及其应用;

二、实验内容

1.使用四叉树(quadtree)的方法,找出图像IM5.BMP中物体的轮廓;

2.选择一个合适的初始阈值,将图像IM5.BMP分为两个区域;

3.选作题目:

选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来

描述纹理特征;

4.选作实验五特征提取

一、实验目的

1.了解图像纹理分析和特征提取方法;

二、实验内容

1.选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来描述纹理特征;

题目:

汽车牌照定位与字符识别。

三,代码

%使用四叉树(quadtree)的方法,找出图像IM5.BMP中物体的轮廓

h=imread('L8_2.BMP');

s=qtdecomp(h,0.2);

figure

(1);

subplot(221);

imshow(full(s));

title('参数为0.2');

s=qtdecomp(h,0.4);

subplot(222);

imshow(full(s));

title('参数为0.4');

s=qtdecomp(h,0.6);

subplot(223);

imshow(full(s));

title('参数为0.6');

s=qtdecomp(h,0.8);

subplot(224);

imshow(full(s));

title('参数为0.8');

%%

%选择一个合适的初始阈值,将图像IM5.BMP分为两个区域

h=imread('L8_2.BMP');

h1=im2bw(h,40/255);

h2=im2bw(h,100/255);

h3=im2bw(h,150/255);

h4=im2bw(h,180/255);

figure

(2);

subplot(221);

imshow(h);

title('原图像');

subplot(222);

imshow(h2);

title('t=100');

subplot(223);

imshow(h3);

title('t=150');

subplot(224);

imshow(h4);

title('t=180');

四,实验结果

五,结果分析

通过上图可以看出,实验还是比较成功的,在进行使用四叉树进行轮廓分析和阈值分割图像时,我分别使用了不同的参数来进行实验,得到的效果是完全不同的。

实验五特征提取

一、实验目的

1.了解图像纹理分析和特征提取方法;

二、实验内容

1.选择合适的位置算子,计算出图像的共生矩阵,然后计算熵和能量来描述纹理特征;

三,代码

clc;

clear;

[I,M]=imread('L8_2.BMP');

%imhist(I);

imshow(I,M);

glcm=graycomatrix(I,'Offset',[060],'NumLevels',8);

energy=graycoprops(glcm,'energy');

entropy=0;

[row,col]=size(glcm);

fori=1:

row

forj=1:

col

entropy=entropy+glcm(i,j)*log10(glcm(i,j));

end

end

%display(glcm);

display(energy);

display(entropy);

四,实验结果

五,结果分析

给定不不同的向量和灰度压缩成不同个数会得到不同不同的值,原因是没有对图像进行归一化,导致有多值。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1