当前位置:文档之家› 数字图像处理实验指导书(2014年版)

数字图像处理实验指导书(2014年版)

数字图像处理实验指导书自动化工程学院2014年11月试行实验一数字图像的获取一.实验目的1. 熟悉MATLAB软件的操作环境,掌握基本的程序调试方法和简单的编程; 2.学会读出MATLAB目录下图像文件并进行旋转、加亮、取反、多幅图像显示等基本操作。

二.实验内容1.读取和显示I=imread(‘rice.png’);%读取图像imshow(I) ;2.直方图在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题3.加亮RGB=imread(‘peppers.png’);%读取图像RGB2=imadd(RGB,50);subplot(2,2,1);imshow(RGB);subplot(2,2,2);imshow(RGB2);4.取反I=imread(‘rice.png’);J=imcomplement(I);Imshow(J);5.翻转I = imread('cameraman.tif');1figure,imshow(I);theta = 30;K = imrotate(I,theta); % Try varying the angle, theta.figure, imshow(K)6.图片大小I=imread(‘rice.png’);[m,n]=size(I)7.缩放在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。

I = imread('cameraman.tif');figure,imshow(I);scale = 0.5;J = imresize(I,scale);figure,imshow(J);8.图像二值化操作I=imread('rice.png');J=im2bw(I,0.4);imshow(J)9.图像合成(1)图像加运算i=imread('cameraman.tif')j=imread('rice.png')k=imadd(i,j);imshow(k)注意:两幅图像的大小和类型必须是相同的。

(2)图像减运算i=imread('AT3_1m4_01.tif');j=imread('AT3_1m4_02.tif');K=imsubtract(i,j);%函数将负值截断为0,显示效果为黑,可用于探查同一场景的多幅图像的变化。

imshow(K)2(3)图像的乘法两幅图相乘,使用immultiply函数,该函数对两幅图的对应像素进行逐元素的点乘(.*)运算,并将计算结果返回给输出图像的对应像素。

图像与常数相乘是一个常见的图像处理操作,如果常数大于1,结果图像变亮,如果常数小于1,结果图像变暗。

一般情况下,图像乘运算比加运算得到的明暗效果更自然。

i=imread('rice.png');j=immultiply(I,1.2);imshow(i)figureimshow(j)10.逻辑运算对于二值图像,可以用MATLAB的逻辑操作符进行逻辑运算。

首先,读入两幅灰度图像rice.png和cameraman.tif,将它们转换为二值图像并显示,指令如下:i=imread('rice.png');j=imread('cameraman.tif');i2=im2bw(i,0.4);j2=im2bw(j,0.4);imshow(i2)figure;imshow(j2)用逻辑操作符对上面两图进行与运算、或运算、非运算和异或运算imshow(i2&j2)figureimshow(i2|j2)figureimshow(~j2)figureimshow(xor(i2,j2))三.作业及思考题1.调试2~10题的程序。

2.直方图的概念?3.结合本次实验思考黑白图和灰度图是否有区别?3实验二中值、均值滤波一.实验目的1.学会读出MATLAB目录下图像文件并进行中值、均值滤波等基本操作实现对图像的基本变换;2.学会直方图和灰度以及图像清晰度之间的关系,并且能熟练掌握如何使图像变清晰;3. 学会对图像进行傅里叶变换,以及基于三种边缘算子(Sobel、Prewitt、Log)边缘算子的边缘检测技术二. 实验内容1 均值滤波定义:调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。

实现:I = imread('cameraman.tif');%’图片名’figure,imshow(I);J=filter2(fspecial(‘average’,3),I)/255;figure,imshow(J);2. 中值滤波定义:中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。

实现:I = imread('cameraman.tif');4figure,imshow(I);J=medfilt2(I,[5,5]);% [5,5]是5*5窗口,如果3*3窗口则直接表示为J=medfilt2(I) figure,imshow(J);3. 边缘检测定义:调用图像边缘检测(Sobel、Prewitt、Log边缘算子)函数,设置相关参数,再输出处理后的图像。

实现:I = imread('cameraman.tif');J1=edge(I,'sobel');% 三种定义边缘的方法: ‘sobel’’prewitt’’log’J2=edge(I,'prewitt');J3=edge(I,'log');subplot(1,4,1),imshow(I);subplot(1,4,2),imshow(J1);subplot(1,4,3),imshow(J2);subplot(1,4,4),imshow(J3);4 图像的傅里叶变换定义:利用MATLAB软件实现数字图像傅立叶变换,设置相关参数,再输出处理后的图像。

实现:I=imread('cameraman.tif'); %读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换5sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;figure; %设定窗口imshow(A); %显示原图像的频谱5 彩色图像变换成灰度图像RGB = imread(‘有色图像路径’);I = rgb2gray(RGB);Imshow(RGB); %显示原图像Title(‘原图像’); %给原图像加标题名Figure;imshow(I); %显示变换后的灰度图像Title(‘灰度图’) ;6利用DCT变换进行图像压缩的MATLAB程序实现:RGB = imread(‘有色图像路径’);I = rgb2gray(RGB);J = dct2(I);imshow(log(abs(J)),[]), colormap(jet(64)), colorbarJ(abs(J) < 10) = 0;6K = idct2(J);figure,imshow(I)figure,imshow(K,[0 255])三.作业1 思考:边缘检测有哪几种常用的算子?2 中值、均值滤波的原理以及对图像的变化?(原理以3*3窗口说明,图像变化用程序来实现)3完成任意彩色图像到灰度图像的转换4用一种算子完成对图像边缘的检测7实验三直方图均衡化增强图像对比度一.实验目的1.学会读出MATLAB目录下图像文件并进行直方图均衡化、图像分割、直方图均衡化增强图像对比度等基本操作;2.学会直方图的灰度变换方法;3. 学会和在视图中取得像素点的坐标二.实验内容1.直方图均衡化:定义:直方图是像素点的灰度值的统计数据图,它反映了视图中所有像素点的灰度分布,直接影响图像的清晰度,对比度以及后期处理的难度,所以对图像绘制直方图是图像处理初期一个非常重要的步骤,直方图均衡化是对已有图像进行图像处理,达到重新分配灰度,使图像的清晰度,对比度更强的图像处理操作。

实现:I=imread('cameraman.tif'); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理Imshow(I); %显示原图像Title(‘原图像’); %给原图像加标题名Figure;imshow(J); %对原图像进行屏幕控制;显示直方图均衡化后的图像Title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名Figure; subplot(1,2,1) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图Imhist(I,64); %将原图像直方图显示为64级灰度Title(‘原图像直方图’) ; %给原图像直方图加标题名Subplot(1,2,2); %作第2幅子图Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名2.直方图均衡化增强图像对比度定义:直方图均衡化可以增加图像的对比度,以下程序实现图像均衡化对对比度的影响。

实现:A=imread('d:\pepper.bmp');%注意路径,这个是彩色图片B=rgb2gray(A)T=graythresh(B);g=im2bw(B,T);8subplot(121),imshow(B);subplot(122),imshow(g);3.简单的图像分割定义:简单的图像分割可以用边缘检测来实现,我们用LOG和 CANNY算子对图像进项简易分割。

3.1使用LoG (拉普拉斯-高斯)算子的进行图像分割实验实现:I=imread('cameraman.tif');Imshow(I);BW=edge(I,‘log’);Figure,imshow(BW,[]);3.2使用CANNY算子对图像进行分割实验实现:I=imread('cameraman.tif');Imshow(I);BW=edge(I, ‘canny’);Figure,imshow(BW,[]);4.在视图中取得像素点的坐标定义:视图中,某些特征点的位置是用点坐标来确定的,通过MATLAB程序,可以直接读取特征点的坐标。

相关主题