数字图像实验报告

  • 格式:doc
  • 大小:1.95 MB
  • 文档页数:20

实验一 实验目的 (1)熟悉MATLAB图像处理工具箱的使用方法。 (2)了解计算图像的统计指标的方法及其在图像处理中的意义。 实验内容 (1)利用MATLAB图像处理工具箱读,写和显示图像文件。 (2)计算图像的有关统计参数。 实验步骤及结果 (1)将图像反白。图像是RGB彩色图像football.jpg,采用rgb2gray函数可以讲彩色图像转换为灰度图像。 相关代码如下: I = imread(‘football.jpg’); Subplot(2,2,1); imshow(I); J = rgb2gray(I); Subplot(2,2,2); imshow(J); Ave = mean2(J) SD = std(double(J)) s = size(J); all_white = 255*ones(s(1),s(2)); all_white_uint8 = uint8(all_whilt); K = imsubtract(all_white_uint,J); Subplot(2,2,3); imsho(K); Imwrite(K,’football_iverse.jpg’); 运行结果如下: (2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息。代码如下: info = imfinfo(‘football.jpg’) info = Filename:[1x66 char] FileModDate:’01-三月-2001 09:52:38’ FileSize:27130 Format:’jpg’ FormatVersion:” Width:320 Height:256 BitDepth:24 ColorType:’truecolor’ FormatSignature:” NumberOfSamples:3 CodingMethod:’Huffman’ CodingPrrocess:’Sequential’ Comment{} 结果如下: 函数: corr2 I = imread(‘pout.tif’); J = medfilt2(I); R= corr2(I,J)

R = 0.9959 函数 impixel :

函数pixval已经被函数impixelinfo取代: 函数 std2: I = imread(‘football.jpg’); Val = std2(I)

Val = 44.2095 实验二 实验目的 (1)了解静止图像的数字化原理。 (2)掌握常用图像数字化设备的使用:摄像机。扫描仪,数码相机等。 实验内容 (1)建构微机图像系统 (2)采集视频图像和静态图像。 (3)编辑静态图像。 实验步骤及结果 (1)用MATLAB程序说明实际数字图像的量化特点。采用cameraman测试图像,计算图像大小,取中央窗口的16×16子图像,显示其量化值。对测试图像进行适当裁剪并显示处理后的图像。 相关代码如下: W = 16; I = imread(‘Cameraman.tif’); S = size(I); J = I(S(1)/2-W/2:S(1)/2+W/2-1,S(2)/2-W/2:S(2)/2+W/2-1) imshow(J); K = I(2*W:S(1)-W,2*W:S(2)-5*W) imshow(k); 结果如下: 图像二值化: 实验三

实验目的 (1)了解图像正变换和逆变换的原理。 (2)理解图像变化系数的特点。 (3)掌握常用图像变换的实现过程。 (4)掌握图像的频谱分析方法。 (5)了解图像变化在图像数据压缩等方面的应用。 实验内容 (1)在MATLAB环境中,进行图像的离散傅里叶变换和离散余弦变换,观察图像的频谱并减少DCT系数,观察重建信号和误差信号,理解正交变换在压缩编码中的应用。 (2)在MATLAB环境中,进行图像的离散小波变换,观察图像的近似图像和个方向的细节图像,观察重建图像,理解小波变换在图像特征检测(如边缘检测,方向检测等)中的应用。 实验步骤及结果 (1)用MATLAB实现图像的傅里叶变换。为了增强效果,程序中用对数对频谱的幅度进行压缩,然后将频谱幅度的对数值用0~10之间的值进行显示。 相关代码如下: I = imread(‘pout.tif’); imshow(I); F1 = fft2(I); figure, imshow(log(abs(F1)+1), [0 10]); F2 = fftshift(F1); figure, imshow(log(log(abs(F2)+1),[0 10]); 结果如下: (2)应用MATLAB实现图像的DCT变换。 代码如下: I = imread(“football.jpg”); imshow(I); J = rgb2gray(I); c1 = dct2(J); figure, imshow(log(abs(c1)+1), [0 10]); c2 = fftshift(c1); figure, imshow(log(abs(c2)+1), [0 10]); 结果如下: 实验四 实验目的 (1)熟悉并学会使用MATLAB中图像增强的相关函数。 (2)了解图像增强的方法,去噪的方法和效果。 实验内容 (1)图像灰度修正。 (2)图像平滑方法。 (3)图像锐化方法。 实验步骤及结果 (1)采用线性变换进行图像增强。应用MATLAB函数imadjust将图像在0.3×255~0.7×255灰度之间的值通过线性变化映射到0~255之间。 相关代码如下: I = imread(“pout.tif”); subplot(2,2,1),imshow(I); subplot(2,2,2),imhist(I); J = imadjust(I,[0.3,0.7],[]); subplot(2,2,3),imshow(J); subplot(2,2,4),imhist(J);

结果图: (2)求图像的归一化直方图。 代码如下: I = imread(“布格罗的画.jpg”); J = rgb2gray(I); subplot(1,2,1),imshow(J); N = numel(J); pr = imhist(J)/N; K = 0:255; subplot(1,2,2),strm(k,pr); 结果如下:

(3)利用罗伯茨梯度对图像进行锐化处理。 代码如下: I= imread(‘eight.tif’); imshow(I); BW1 = edge(I,’roberts’,0.1); figure,imshow(BW1); 实验五 实验目的 (1)了解图像复原的原理。 (2)掌握常用图像复原方法。 实验内容 (1)利用维纳滤液对有噪声模糊图像进行复原。 (2)比较直接维纳滤液,设置信噪比参数、设置噪声和自相关函数这三种情况下的图像复原效果。 实验步骤及结果 (1)使用deconvwnr函数对无噪声模糊图像进行复原重建,观察所得结果,并将不同PSF产生的复原效果进行比较。 代码如下: blurred = imread(‘flower.gif’); len = 28; theta = 14; PSF = faspecial(‘motion’,len,theta); wnrl = deconvwnr(blurred,PSF); figure,imshow(wnrl);

结果如下: (2)对有噪声模糊图像使用最小二乘滤波方法进行复原重建,要求尽量提高重建图的质量。 代码如下: 实验六 实验目的 (1)熟悉MATLAB图像处理工具箱的使用方法。 (2)熟悉图像边缘检测的方法。 (3)理解边缘检测在图像分割中的应用。 实验内容 (1)利用MATLAB图像处理工具箱提供的DEMO进行实验。 (2)利用MATLAB图像处理工具箱的边缘检测函数编程进行边缘检测。 (3)理解边缘检测在图像分割中的应用,比较各种边缘检测方法。 实验步骤及结果 利用阀值分割图像。 相关代码如下: I = imread(‘rice.tif’); subplot(131); imshow(I); subplot(132); imhist(I); T = 110; S = size(I) [maxi,maxP] = max(I(:,:)) [mini,minP] = min(I(:,:)) for I = 1:S(1) for j = 1:S(2) if I(i,j)>=T I(i,j) = 255; else I(i,j) = 255; end end end subplot(133); imshow(I); 结果如下: (2)利用bwtraceboundary函数对图像进行边缘跟踪。 结果如下: