河北工业大学图像实验报告.docx

上传人:b****8 文档编号:10794835 上传时间:2023-02-23 格式:DOCX 页数:29 大小:1.36MB
下载 相关 举报
河北工业大学图像实验报告.docx_第1页
第1页 / 共29页
河北工业大学图像实验报告.docx_第2页
第2页 / 共29页
河北工业大学图像实验报告.docx_第3页
第3页 / 共29页
河北工业大学图像实验报告.docx_第4页
第4页 / 共29页
河北工业大学图像实验报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

河北工业大学图像实验报告.docx

《河北工业大学图像实验报告.docx》由会员分享,可在线阅读,更多相关《河北工业大学图像实验报告.docx(29页珍藏版)》请在冰豆网上搜索。

河北工业大学图像实验报告.docx

河北工业大学图像实验报告

《数字图像处理》实验报告

软件102班孙世华102442

实验一(4学时)

1、熟悉MATLAB软件的开发环境和基本操作,为编写图像处理程序奠定基础。

例如:

1.矩阵:

A=[123;456];

输入结果为:

>>A=[123;456]

A=

123

456

2.读取图像,并进行显示

I=imread(‘lena.jpg’);

Imshow(I);

输入结果为:

I=imread(‘1.jpg’);

imshow(I);

 

二、掌握二进制(黑白)图像、灰度图像、彩色图像读和写的基本方法,观察其图像参数,并说明以下程序的显示结果为何是一幅几乎全黑的图像。

clear;closeall;

myi=zeros(20,20);

myi(2:

2:

18,2:

2:

18)=1;

myi=uint8(myi);

figure,imshow(myi,'notruesize');

输入结果为:

clear;

i=imread('2.jpg');

imwrite(i,'22.bmp','bmp'),j=imread('22.bmp');%jpg格式转换为bmp格式

imggray=rgb2gray(i);

imwrite(imggray,'2gray.bmp','bmp'),p=imread('2gray.bmp');%存储为灰度图像

imgbw=im2bw(i,0.5);

imwrite(imgbw,'2binary.bmp','bmp'),q=imread('2binary.bmp');%存储为二值图像

figure;

subplot(2,2,1),imshow(i),title('原彩色图');

subplot(2,2,2),imshow(j),title('转换为bmp格式图像');

subplot(2,2,3),imshow(p),title('灰度图像');

subplot(2,2,4),imshow(q),title('二值图像');

输入下面代码:

clear;closeall;

myi=zeros(20,20);

myi(2:

2:

18,2:

2:

18)=1;

myi=uint8(myi);

figure,imshow(myi,'notruesize');

得到的图像为几乎全黑的,是因为从0变化为1,颜色变化很小,人眼几乎分辨不出来,所以几乎是全黑的,附下图:

三、图像采样和量化相关实验

要求:

1.选择lena.jpg或其它图片,缩小空间分辨率,观察结果并分析

2.选择lena.jpg或其它图片,缩小灰度分辨率,观察结果并分析

1.缩小空间代码率

clear

>>I=imread('1.jpg');

>>P=I;

>>[a,b]=size(I)

a=

379

 

b=

1650

>>fori=1:

189

forj=1:

1650

P(2*i,j)=P(2*i-1,j);

end

end

>>fori=1:

379

forj=1:

825

P(i,2*j)=P(i,2*j-1);

end

end

>>figure;

>>subplot(1,2,1),imshow(I),title('原图像');

subplot(1,2,2),imshow(P),title('缩小空间分辨率后的图像');

分析:

缩小空间分辨率的图像与原图像比较起来细节变得有些不明显。

2.缩小灰度分辨率

实验代码如下:

I=imread('2.jpg');

[M,N,K]=size(I);

fori=1:

M

forj=1:

N

ifI(i,j)<127

A(i,j)=0;

else

A(i,j)=255;

end

end

end

figure;

subplot(1,2,1);

imshow(I,[]);

subplot(1,2,2);

imshow(A,[]);

四、直方图学习

使用函数:

显示图像直方图imhist()

要求:

显示灰度图像直方图(lena.jpg)

要求:

显示彩色图像直方图(qingwa.jpg)

输入下面的代码:

clear;

i=imread('2.jpg');

x=rgb2gray(i);

figure;

subplot(2,3,1),imshow(i),title('原图');

subplot(2,3,2),imshow(x),title('灰度图');

subplot(2,3,3),imhist(x),title('灰度直方图');

subplot(2,3,4),imhist(i(:

:

1)),title('red直方图');

subplot(2,3,5),imhist(i(:

:

2)),title('green直方图');

subplot(2,3,6),imhist(i(:

:

3)),title('blue直方图');

五、应用MATLAB(或C)语言编写一幅灰度图像直方图统计程序,并选择一幅图像显示其直方图,将结果与MATLAB工具箱提供的灰度直方图函数imhist的处理结果进行比较。

利用以上编写的程序,估算下面图像中瞳孔半径(以像素为单位)。

输入下面代码:

clear;

i=imread('1.jpg');%读取图像1.jpg

p=rgb2gray(i);%转换为灰度图像p

[m,n]=size(p);

h=imhist(p);

h1=h(1:

2:

256);%准备画圈的纵坐标-->数据来自于图像

h2=1:

2:

256;%准备画圈的横坐标就是1到256

figure;

subplot(2,2,1),imshow(i),title('原图');%显示原图像

subplot(2,2,2),imshow(p),title('灰度图');%显示灰度图像

subplot(2,2,3),imhist(p),title('灰度图像直方图');%列出灰度图像直方图

subplot(2,2,4),stem(h2,h1,'r--'),title('火柴梗图');%用红色的绘制火柴梗图

forii=0:

255

a(ii+1)=length(find(p==ii));

end

s1=0;

forii=0:

55

s1=s1+a(ii+1);

end

s2=m*n;

pp=s1/s2;

disp(['pp=',num2str(pp)]);

pp=0.1332

六、傅里叶变换和反变换

fft2:

二维傅里叶变换

ifft2:

二维傅里叶反变换

fftshift:

将零点平移到频谱的中心

ifftshift:

逆ifftshift

abs:

向量绝对值

输入以下代码:

clear

i=imread('11.jpg');

f1=fft2(im2double(i));%二维傅里叶变换

f2=fftshift(f1);%将零点平移到频谱的中心

f3=abs(f2);

f4=ifftshift(f2);

f5=ifft2(f4);

subplot(2,3,1),imshow(i),title('原图');

subplot(2,3,2),imshow(f1),title('fft2');

subplot(2,3,3),imshow(f2),title('fftshift');

subplot(2,3,4),imshow(f3),title('abs');

subplot(2,3,5),imshow(f4),title('ifftshift');

subplot(2,3,6),imshow(f5),title('ifft2');

 

实验二(4学时)

应用MATLAB工具箱进行图像处理,包括显示图像、格式转换、图像灰度调整、对比度增强、直方图均衡、邻域平均法、中值滤波法、图像代数运算、边缘增强、伪彩色增强、假彩色合成、二值化、边缘检测等;分析处理结果,掌握方法和原理,巩固所学内容。

一、图像增强点运算

1.直方图均衡化

使用函数:

直方图均衡化histeq(’lena.jpg’);

实验要求:

选择一幅直方图不均匀的图像,对该图像进行直方图均衡处理,显示处理前后的图像以及它们的灰度直方图。

实验代码如下:

clear;

i=imread('1.jpg');

p=rgb2gray(i);

j=histeq(p);

subplot(2,3,1),imshow(p),title('灰度图');

subplot(2,3,3),imhist(p),title('原灰度直方图');

subplot(2,3,4),imshow(j),title('均衡化后图');

subplot(2,3,6),imhist(j),title('均衡化后直方图');

2.灰度修正技术:

使用函数:

imadjust();

实验要求:

选择一幅对比度不足的图像,对该图像进行灰度变换,增强对比度,显示增强前、后的图像以及它们的灰度直方图。

实验代码如下:

clear;

i=imread('2.jpg');

p=rgb2gray(i);

j=imadjust(p,[0.40.8],[]);

subplot(2,3,1),imshow(i),title('原彩色图');

subplot(2,3,2),imshow(p),title('灰度图');

subplot(2,3,3),imshow(j),title('增强对比度的图');

subplot(2,3,5),imhist(p),title('原灰度图直方图');

subplot(2,3,6),imhist(j),title('修正后直方图');

1、图像的空间域平滑(使用4-邻域,8邻域进行处理),比较处理结果

例如:

(使用4-邻域进行图像平滑处理)

I=imread('001.png');

imshow(I);

I1=imnoise(I,'gaussian',0.1);

figure;

imshow(I1);

F=[0,1,0;1,0,1;0,1,0]/4;//所用模板(4-邻域)

I2=filter2(F,I1);

figure;

imshow(I2,[]);

实验代码如下:

clear;

i=imread('1.jpg');

p=imnoise(i,'gaussian',0.1);

f1=[010;101;010]/4;%所用模板(4-邻域)

f2=[010;101;010]/8;%所用模板(8-邻域)

j=imfilter(p,f1,'corr','replicate');

k=imfilter(p,f2,'corr','replicate');

subplot(2,2,1),imshow(i),title('原彩色图');

subplot(2,2,2),imshow(p),title('噪声污染后图');

subplot(2,2,3),imshow(j),title('4-邻域处理后图');

subplot(2,2,4),imshow(k),title('8-邻域处理后图');

三、图像的空间域锐化(要求梯度法图像锐化的五种方法)

例如:

第一种锐化方法

[I,map]=imread('H:

\lena.jpg');

I=double(I);

[IX,IY]=gradient(I);

GM=sqrt(IX.*IX,IY.*IY);

OUT1=GM

imshow(OUT1,map);

实验代码如下:

clear;

[P,map]=imread('2.jpg');

S=rgb2gray(P);

I=double(S);

[Gx,Gy]=gradient(I);%计算梯度

G=sqrt(Gx.*Gx+Gy.*Gy);%注意是矩阵点乘

J1=G;%第一种图像增强

J2=I;%第二种图像增强

K=find(G>=5);

J2(K)=G(K);

J3=I;%第三种图像增强

K=find(G>=5);

J3(K)=255;

J4=I;%第四种图像增强

K=find(G<=5);

J4(K)=255;

J5=I;%第五种图像增强

K=find(G<=5);

J5(K)=0;

Q=find(G>=5);

J5(Q)=255;

figure;%显示图像

subplot(2,3,1),imshow(S,map),title('灰度图像');

subplot(2,3,2),imshow(J1,map),title('第一种');

subplot(2,3,3),imshow(J2,map),title('第二种');

subplot(2,3,4),imshow(J3,map),title('第三种');

subplot(2,3,5),imshow(J4,map),title('第四种');

subplot(2,3,6),imshow(J5,map),title('第五种');

4、图像的频率域平滑和锐化(常用的四种低通和高通滤波器)

实验代码如下:

clear;

B=ones(200,200);

fori=1:

50

forj=1:

60

B(i,j)=0;

end

end

fori=1:

60

forj=1:

80

K(i,j)=0.5;

end

end

K1=imnoise(K,'salt&pepper');

fori=1:

60

forj=1:

80

B(100+i,100+j)=K1(i,j);

end

end

figure;

subplot(2,3,1),imshow(B),title('生成的图');

%进行傅里叶变换

f=double(B);

g=fft2(f);

g=fftshift(g);

K=log(1+abs(g));

subplot(2,3,2),imshow(K,[]),title('傅里叶变换生成的图');

%得到相关参数

[M,N]=size(g);

m1=fix(M/2);

n1=fix(N/2);

d0=M/10;

d1=d0*2;

%得到滤波器函数

fori=1:

M

forj=1:

N

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

%?

?

?

?

?

if(d

idealfilter(i,j)=1;

else

idealfilter(i,j)=0;

end

%?

?

?

?

?

?

?

?

?

n=2;

blfilter(i,j)=1/(1+(d/d0)^(2*n));

%?

?

?

?

?

?

?

elfilter(i,j)=exp(-((d/d0)^n));

%?

?

?

?

?

?

?

if(d

tlfilter(i,j)=1;

elseif(d>=d0&&d<=d1)

tlfilter(i,j)=(d-d1)/(d0-d1);

else

tlfilter(i,j)=0;

end

end

end

end

%?

?

?

?

resulti=idealfilter.*g;

%?

?

?

?

?

?

resultb=blfilter.*g;

%?

?

?

?

resulte=elfilter.*g;

%?

?

?

?

?

?

?

resultt=tlfilter.*g;

%?

?

?

?

result1=fftshift(resulti);

R1=ifft2(result1);

subplot(2,3,3),imshow(R1,[]),title('理想低通');

%?

?

?

?

?

?

result2=fftshift(resultb);

R2=ifft2(result2);

subplot(2,3,4),imshow(R2,[]),title('巴特沃斯低通');

%?

?

?

?

result3=fftshift(resulte);

R3=ifft2(result3);

subplot(2,3,5),imshow(R3,[]),title('指数低通');

%?

?

?

?

result4=fftshift(resultt);

R4=ifft2(result4);

subplot(2,3,6),imshow(R4,[]),title('梯形低通');

五、伪彩色变换(选择两种方法)和假彩色变换

伪彩色变换(选择两种方法):

1、密度分割法:

clear;

z=imread('lung.jpg');

x=rgb2gray(z);

[m,n]=size(x);

r=zeros(m,n);

g=zeros(m,n);

b=zeros(m,n);

e=max(max(x));

f=min(min(x));

t=(e-f)/3;

%变换图像

fori=1:

m

forj=1:

n

ifx(i,j)<(f+t)

r(i,j)=255;

elseifx(i,j)>(e-t)

b(i,j)=255;

else

g(i,j)=255;

end

end

end

subplot(2,3,1),imshow(z),title('原始图像');

subplot(2,3,2),imshow(x),title('灰度图像');

subplot(2,3,4),imshow(r),title('红色图像');

subplot(2,3,5),imshow(g),title('绿色图像');

subplot(2,3,6),imshow(b),title('蓝色图像');

p=uint8(zeros(m,n,3));

p(:

:

1)=uint8(r);

p(:

:

2)=uint8(g);

p(:

:

3)=uint8(b);

subplot(2,3,3),imshow(p),title('变换图像');

彩色变换合成法:

clear;

z=imread('2.jpg');%如果图像是一幅真彩色RGB图像

w=rgb2gray(z);

[mn]=size(w);

r=w;

g=w;

b=w;

fori=1:

m

%生成Red

forj=1:

n

ifw(i,j)<=127

r(i,j)=255;

elseifw(i,j)>=191

r(i,j)=0;

else

r(i,j)=(w(i,j)-127)*4;

end

end

%生成Green

forj=1:

n

ifw(i,j)<=63

g(i,j)=4*w(i,j);

elseifw(i,j)>=192

g(i,j)=(255-w(i,j))*4;

else

g(i,j)=0;

end

end

%生成Blue

forj=1:

n

ifw(i,j)<=63

b(i,j)=0;

elseifw(i,j)>=127

b(i,j)=255;

else

b(i,j)=(127-w(i,j))*4;

end

end

end

subplot(2,3,1),imshow(z),title('原始图像');

subplot(2,3,2),imshow(w),title('灰度图像');

subplot(2,3,4),imshow(r),title('红色图像');

subplot(2,3,5),imshow(g),title('绿色图像');

subplot(2,3,6),imshow(b),title('蓝色图像');

%合成为伪彩色

p=uint8(zeros(m,n,3));

p(:

:

1)=uint8(r);

p(:

:

2)=uint8(g);

p(:

:

3)=uint8(b);

subplot(2,3,3),imshow(p),title('伪彩色图像');

假彩色变换

clear;

i=imread('2.jpg');

j(:

:

1)=i(:

:

2);

j(:

:

2)=i(:

:

3);

j(:

:

3)=i(:

:

1);

subplot(1,2,1),imshow(i),title('原图像');

subplot(1,2,2),imshow(j),title('假彩色图像');

 

六、图像分割(边缘提取法和阈值分割法)

例如:

边缘提取的方法

I=imread(‘C:

\1.jpg’);读图象

edge()函数用于灰度图象边缘的提取;生成图象均为二值图像;其参数代表所用的方法

BW=edge(I,’sobel’);sobel边缘提取方法

BW=edge(I,’prewitt’);prewitt边缘提取方法

BW=edge(I,’roberts’);roberts边缘提取方法

BW=edge(I,’log’);拉普拉斯边缘提取方法

实验代码如下:

1、边缘提取的方法

clear;

i=imread('2.jpg');

f1=im2bw(i,0.5);

f2=double(f1);

f3=edge(f2,'sobel');%sobel边缘提取方法

f4=edge(f2,'prewitt');%prewitt边缘提取方法

f5=edge(f2,'roberts');%roberts边缘提取方法

f6=edge(f2,'log');%拉普拉斯边缘提取方法

subplot(2,3,1),imshow(i),title('原彩色图');

subplot(2,3,2),imshow(f1),title('二值图');

subplot(2,3,3),imshow(f3),title('sobel图');

subplot(2,3,4),imshow(f4),title('prewitt图');

subplot(2,3,5),imshow(f5),title('roberts图');

subplot(2,3,6),imshow(f6),title('拉普拉斯图');

2、阈值分割法

clear;

i=imread('1.jpg');

thresh=graythresh(i);%自适应确定阈值

bw1=im2bw(i,thresh);%二值化

bw2=im2bw(i,130/255);%以130为阈值实现二值化,转换为[0,1]区间内

subplot(1,3,1),imshow(i),title('原图像');

subplot(1,3,2),imshow(bw1),title('自动选择阈值');

subplot(1,3,3),imshow(bw2),title('阈值130');

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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