数字图像处理上机实验报告实验一:MATLAB工具箱的使用实验目的:11:了解matlab语言,熟悉并掌握matlab相关的处理语句。
2:了解matlab在图像处理中的优缺点。
3 熟悉matlab的使用技巧,能用matlab熟悉的对数字图像进行各种处理。
1 将一幅灰度图像转换成索引色图像。
I=imread('ngc4024m.tif'>。
X=grayslice(I,16>。
imshow(I>figure,imshow(X,hot(16>>2:对一副图像进行二值化处理。
load treesBW=im2bw(X,map,0.4>。
imshow(X,map>figure,imshow(BW>3:将索引色图像转化成灰度图像。
load treesI=ind2gray(X,map>。
imshow(X,map>figure,imshow(I>4:显示一幅图像。
load clown image(10,10,X> colormap(map>实验二图像变换实验目的:1 熟悉掌握DFT和DCT变换的matlab实现。
2 利用matlab实验DFT和DCT的变换,求出图像的频谱。
1.二维离散傅里叶变换的旋转型。
I=zeros(256,256>。
>> I(28:228,108:148>=1。
>> imshow(I>J=fft2(I>。
>> F=abs(J>。
>> J1=fftshift(F>。
figure>> imshow(J1,[5 50]>I=zeros(256,256>。
>> I(28:228,108:148>=1。
>> J=imrotate(I,315,'bilinear','crop'>。
>>figure>> imshow(J>J1=fft2(J>。
>> F=abs(J1>。
>> J2=fftshift(F>。
figure >> imshow(J2,[5 50]>2.图像的傅里叶频谱。
>> clear。
I=zeros(256,256>。
I(8:248,110:136>=5。
>> imshow(I>J3=fft2(I>。
>> F2=abs(J3>。
>> J4=fftshift(F2>。
figure>> imshow(J4,[5 30]>3.二维余弦正反变换在Matlab中的实现。
RGB=imread('autumn.tif'>。
>> I=rgb2gray(RGB>。
>> figure(1>>> imshow(I>。
figure(2>。
J=dct2(I>。
imshow(log(abs(J>>,[]>。
colormap(jet(64>>。
colorbar。
b5E2RGbCAPfigure(3>。
>> J(abs(J><10>=0。
>> K=idct2(J>/255。
>> imshow(K>。
4.用DCT变换作图像压缩的例子。
>> I=imread('cameraman.tif'>。
I=double(I>/255。
T=dctmtx(8>。
B=blkproc(I,[8 8],'P1*x*P2',T,T'>。
>> mask=[1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0]。
>> B2=blkproc(B,[8 8],'P1.*x',mask>。
>> I2=blkproc(B2,[8 8],'P1*x*P2',T',T>。
>> imshow(I>,figure,imshow(I2>实验三图像灰度修正技术和直方图均衡化实验目的:1掌握图像灰度修正技术的原理和实现方法。
2 掌握图像直方图均衡化处理的方法。
实验四图像平滑实验目的:1掌握常见图像噪声类型。
2理解邻域平均法和中值滤波的原理特点和适用对象。
3掌握边缘检测的基本思想和常见的边缘算子的使用方法。
实验五图像锐化实验目的:1掌握图像锐化的主要原理和使用方法。
2掌握常见的边缘提取算法。
3利用matlab实现图像的边缘检测。
1.显示图像‘cameraman.tif’的直方图。
I=imread('cameraman.tif'>。
>> subplot(1,2,1>,imshow(I>>> subplot(1,2,2>,imhist(I>2.显示图像‘bacteria.tif’的等灰度值图。
I=imread('bacteria.tif'>。
>> subplot(1,2,1>,>> imshow(I>>> subplot(1,2,2>,>> imcontour(I>3.调整图像的对比度。
clear all>> I=imread('pout.tif'>。
>> J=imadjust(I,[0.3 0.7],[]>。
>> subplot(121>,imshow(I>>> subplot(122>,imshow(J>figure,subplot(121>,imhist(I> >> subplot(122>,imhist(J>4.对图像‘tire.tif’做直方图均衡化。
I=imread('tire.tif'>。
>> J=histeq(I>。
>> subplot(1,2,1>,imshow(I>>> subplot(1,2,2>,imshow(J>figure,subplot(1,2,1>,imhist(I,64> >> subplot(1,2,2>,imhist(J,64>5.对图像‘cameraman.tif’分别加入高斯噪声,和乘性噪声。
I=imread('cameraman.tif'>。
J1=imnoise(I,'gaussian',0,0.02>。
>> J2=imnoise(I,'speckle',0.02>。
>> subplot(1,3,1>,imshow(I>。
>> subplot(1,3,2>,imshow(J1>。
>> subplot(1,3,3>,imshow(J2>。
6.对图像分别进行各种滤波。
.读取原始图像。
g0=imread('eight.tif'>。
>> figure(1>>> imshow(g0>。
.加入椒盐噪声。
g1=imnoise(g0,'salt & pepper',0.02>。
>> g1=im2double(g1>。
>> figure(2>>> imshow(g1>。
.进行高斯低通滤波。
h1=fspecial('gaussian',4,0.3>。
>> g2=filter2(h1,g1,'same'>。
>> figure(3>>> imshow(g2>。
.进行soble滤波。
h2=fspecial('sobel'>。
>> g3=filter2(h2,g1,'same'>。
>> figure(4>>> imshow(g3>。
.进行prewitt滤波。
h3=fspecial('prewitt'>。
>> g4=filter2(h3,g1,'same'>。
>> figure(5>>> imshow(g4>。
.进行拉普拉斯滤波。
h4=fspecial('laplacian',0.5>。
>> g5=filter2(h4,g1,'samne'>。
>> figure(6>>> imshow(g5>。
.进行高斯拉普拉斯滤波。
h5=fspecial('log',4,0.3>。
>> g6=filter2(h5,g1,'same'>。
>> figure(7>>> imshow(g6>。
.进行均值滤波。
h6=fspecial('average'>。
>> g7=filter2(h6,g1,'same'>。
>> figure(8>>> imshow(g7>。
.进行模糊滤波。
h7=fspecial('unsharp',0.3>。
>> g8=filter2(h7,g1,'same'>。
>> figure(9>>> imshow(g8>。
.进行高斯高通滤波。
h8=[0 -1 0。
-1 5 -1。