图像处理实验任务书2011版

图像处理实验任务书2011版
图像处理实验任务书2011版

《图像处理》实验指导书

10学时

指导教师:蒋旻、付晓薇

实验报告要求

1、做好实验相关预习工作,了解实验的目的与内容。每次实验报告中,首先

写清实验目的。然后,写出实验内容中的题目、程序清单(加上必要注释)、程序运行结果 (可将图像处理效果图附在实验报告中;对综合应用性较高的题目,要求在给出代码前,绘制算法设计的流程图)。最后,给出100字以内的实验体会或总结。要求必须写在实验报告中,图片效果可以剪贴到报告册上。每次实验报告首页页眉写上实验时间、指导老师姓名。

2、实验报告要求手写在实验报告册中,请勿打印。

实验一Matlab图像显示与图像运算

(2学时)

【实验目的】

1、熟悉Matlab的编程环境及其基本用法;

2、掌握MATLAB语言中图像数据与信息的读取方法;了解m文件的编写与调试方法;

3、熟悉图像点运算和代数运算的实现方法;

4、掌握Matlab图像几何变换的基本函数;

5、了解图像几何运算的简单应用;

【实验内容】

1、Introduction

In the following we give a short overview on a very limited set of basic image processing functions provided by MATLAB. The function descriptions only cover the basic usage, more detailed information can be found in the manual pages by typing doc functionName at the MATLAB command line. MATLAB provides with it’s im age processing toolbox many powerful and very efficient image processing functions (see function list of the image processing toolbox). With this it is very simple to implement complex image processing applications, especially for fast prototyping. On the backside, a lot of understanding how image processing works is hidden within black boxes and temps to make things more complicate than they really are.

2、Image representation

In MATLAB a binary and gray-scale image is represented by one 2-dimensional array, whereas a color image are represented by a 3-dimensional array (one 2-dimensional array for each of the color planes or color channels red, green and blue):

The origin of the image is in the upper left and the size of the image is defined by the parameter width (number of columns of the array) and height (number of rows of the array). Note that the x- and y-coordinates are chosen such that the z-axis points to the front.

A single point within the image is called pixel. A gray-scale or binary pixel consists of one data value, a color pixel consists of 3 data values (each for one of the color channels). The most common data types of the individual pixels are:

uint8 unsigned integer: data range 0..255

double double precision float: data range 0.0 ... 1.0

Bi nary images have pixel values of 0’s and 1’s resp. 0.0 and 1.0. In the case of uint8 images, the logical flag must be turned on, to be recognized as binary image (for details see below).

Be careful with data types in MATLAB. Many of the predefined functions, e.g. imadd(img1, img2) which adds two images, just truncates data values to 255 on uint8-arrays ... make sure if that is what you want.

Hints:

To avoid problems with data types, especially when working with predefined image processing functions, it is advisory to work with type double and make sure that data is scaled to the range 0 ...

1.0.

3、Basic MATLAB functions

3.1 MATLAB manual

doc functionname displays the manual for the MATLAB function functionname

doc images the manual for the image processing toolbox

doc imaq the manual for the image acquisition toolbox

3.2 Image information

imfinfo(’foo.ext’)displays information on image format etc. of the file foo.ext

imformats displays an overview of all MATLAB image formats

whos img displays information about the array img: size, data type, etc.

3.3 Reading, writing and displaying images

myImg = imread(’foo.ext’)reads file foo.ext into array myImg, image format is determined by

the file extension (jpg, tiff, tif, gif, bmp, png, ...)

imwrite(anImg, ’foo.ext’)writes the image anImg to the file foo.ext, where the image format is

chosen according to the extension ext. Valid extensions are: tif, tiff,

jpg, jpeg, gif, png

imshow(myImg) displays the image myImg as gray-scale, binary or color image depending on the data type of myImg

imshow(myImg,[]) the image myImg as gray-scale, binary or color image depending on

the data type of myImg and scales the image properly

figure(n) opens a new window with number n, the next call to imshow()

displays the image within this window

3.4 Basic image processing functions

islogical(binImg) checks whether array binImg has the logical flag set or not

(returns value 1 or 0)

img = uint8(zeros(512,1024)) creates a black image with width 1024 and height 512 of type

uint8

img = uint8(255*ones(512,1024)) creates a white image with width 1024 and height 512 of type

uint8

img = double(zeros(512,1024)) creates a black image with width 1024 and height 512 of

type double

img = double(ones(512,1024)) creates a white image with width 1024 and height 512 of

type double

[height width d] = size(myImg) retrieves height and width and stores the values in

variables height and width, d ist set to the array

dimension.

red = myImg(:,:,1) stores the red component of myImg (rgb-image) in array red green = myImg(:,:,2) stores the red component of myImg in array green

blue = myImg(:,:,3) stores the red component of myImg in array blue

mx = max(myImg(:))) computes the maximum value of an 2-d array

mi = min(myImg(:))) computes the minimum value of an 2-d array

img = double(myImg)/255 converts an uint8 array to a double array (no scaling) img = double(myImg)/double(mx) converts uint8 to double and scales maximum to 1.0

i mg = uint8(anImg*255) converts a double array to an unit8 array and rescales the

array to the proper data range

bw = logical(binImg) sets the logical flag on the unit8 array binImg (data values

0 and 1), array bw is then interpreted as a black and white

image and logical operations can be applied

gray = (+bw)*255 turns the logical flag off and rescales the array bw to be

displayed as unit8 array

3.5 Examples

3.5.1 Scaling images

The following two statements scale a double type image to the range 0.0 ... 1.0. This is important, when the image contains negative pixel values, as e.g. after applying edge detection algorithms.

f = f - min(f(:));

f = f / max(f(:));

3.5.2 Color planes

The green and red color plane of image rgbimage.jpg are swapped:

f = imread(’rgbimage.jpg’);

red = f(:,:,1);

g(:,:,1) = f(:,:,2);

g(:,:,2) = red;

g(:,:,3) = f(:,:,3);

imshow(g);

3.5.3 Individual pixel processing

The intensity of the red color channel of rgbImage.jpg is divided by 2.

f = imread(’rgbImage.jpg’);

[M N d] = size(f);

g = unint8(zeros(M,N,3));

for x = 1:M

for y = 1:N

g(x,y,1) = f(x,y,1) / 2;

g(x,y,2) = f(x,y,2);

g(x,y,3) = f(x,y,3);

end;

end;

imshow(g);

Using the MATLAB array notation, this may be written as:

f = imread(’rgbImage.jpg’);

g = f;

g(:,:,1) = g(:,:,1) / 2;

imshow(g);

The image color image rgbImage.jpg is converted to a grayscale image, by simply computing the mean of the three color channels (one possible method) and then stored in file grayImage.jpg. Note that the quality of the resulting image is set to 100 (no data loss):

f = imread(’rgbImage.jpg’);

[M N d] = size(f);

g = unint8(zeros(M,N));

for x = 1:M

for y = 1:N

g(x,y) = (f(x,y,1) + f(x,y,2) + f(x,y,3)) / 3;

% The line above doesn’t work.

% Overflow occurs, while processing uint8, because

% the value range in the intermediate results are limited to 255

g(x,y) = (f(x,y,1)/3 + f(x,y,2)/3 + f(x,y,3)/3);

end;

end;

imshow(g);

imwrite(g, ’grayImage.jpg’, ’Quality’, 100);

Using the MATLAB array notation, this may be written as:

f = imread(’rgbImage.jpg’);

g = uint8(mean(f,3));

imshow(g);

imwrite(g, ’grayImage.jpg’, ’Quality’, 100);

The image grayImage.jpg is slightly blurred by computing the mean of a 3x3 pixel environment and by setting the resulting center pixel to this mean value:

f = imread(’grayImage.jpg’);

[M N d] = size(f);

g = unint8(zeros(M,N));

for x = 2:M-1

for y = 2:N-1

sum = f(x-1,j-1) + f(x-1,j) + f(x-1,y+1);

sum = sum + f(x,y-1) + f(x,y) + f(x,y+1);

sum = sum + f(x+1,y-1) + f(x+1,y) f(x+1,y+1);

rImg(x,y) = unint8(sum/9);

end;

end;

imshow(g);

The same functionality could be achieved, by using MATLAB’s powerful image processing functions and in addition avoids the boundary problem:

f = imread(’grayImage.jpg’);

h = fspecial(’average’,3)

g = imfilter(f, h, ’replicate’);

imshow(g);

4、上机编程题思考题

4.1 读入图像‘rice.tif’,通过图像点运算改变对比度。

rice=imread('rice.tif');

subplot(131),imshow(rice)

I=double(rice); %转换为双精度类型

J=I*0.43+60;

rice2=uint8(J); %转换为uint8

subplot(132),imshow(rice2)

J=I*1.5-60;

rice3=uint8(J); %转换为uint8

subplot(133),imshow(rice3)

4.2 读入图像‘ic.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。

I=imread('ic.tif');

J=imresize(I,1.25);

K=imresize(I,0.8);

imshow(I)

figure,imshow(J)

figure,imshow(K)

Y=imresize(I,[100,150]);

figure,imshow(Y)

4.3 将上述图像顺时针和逆时针旋转任意角度,观察显示效果。

I=imread('ic.tif');

J=imrotate(I,30,'bilinear');

J1=imrotate(I,30,'bilinear','crop');

imshow(I)

figure,imshow(J)

figure,imshow(J1)

J2=imrotate(I,-15,'bilinear');

figure,imshow(J2)

4.4 通过交互式操作,从一幅图像中剪切一个矩形区域。

I=imread('ic.tif');

imshow(I);

I1=imcrop;

figure,imshow(I1)

I2=imcrop(I,[30 60 120 160]);

figure,imshow(I2)

4.5 读入图像‘tire.tif’,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。

I=imread('tire.tif');

f=inline('max(x(:))'); %构造复合函数

I2=nlfilter(I,[3 3],f); %滑动邻域操作

imshow(I)

figure,imshow(I2)

I=imread('tire.tif');

f=inline('uint8(round(mean2(x)*ones(size(x))))'); %构造复合函数

I2=blkproc(I,[8 8],f); %滑动邻域操作

imshow(I)

figure,imshow(I2)

4.6 对图像rice.tif和cameraman.tif进行图像叠加、旋转运算。

I=imread('rice.tif'); %读取图像

J=imread('cameraman.tif');

K=imadd(I,J,'uint16');%图像的叠加

subplot(1,2,1),imshow(K,[])

J=imrotate(K,-90,'bilinear');%图像顺时针旋转90度

subplot(1,2,2),imshow(J,[])

4.7 分别显示彩色图像flowers.tif的R、G、B三基色图像。

I=imread('flowers.tif');

R=I(:,:,1);%图像的红色分量

G=I(:,:,2);%图像的绿色分量

B=I(:,:,3); %图像的蓝色分量

subplot(2,2,1),imshow(I);

subplot(2,2,2),imshow(R);

subplot(2,2,3),imshow(G);

subplot(2,2,4),imshow(B);

备注:例如,在红色分量图像中,白色代表红色数值浓度最高的区域.图像中的黑色区域说明该区域不包含任何红色数值,即R=0.

实验二图像直方图均衡化与图像滤波

(2学时)

【实验目的】

1、了解图像直方图的基本数学原理,会编写相应的m函数文件;

2、掌握matlab图像直方图均衡化、规定化函数.理解图像直方图处理的意义;

3、掌握噪声模拟和图像滤波函数的使用方法;

4、理解图像均值滤波、中值滤波的基本原理,掌握Matlab图像滤波基本函数的使用方法。

【实验内容】

1、直方图变换

1.1 直方图显示

读入图像‘rice.tif’,在一个窗口中显示灰度级n=64,128和256的图像直方图。

I=imread('rice.tif');

imshow(I)

figure,imhist(I,64)

figure,imhist(I,128)

1.2直方图灰度调节

利用函数imadjust调解图像灰度范围,观察变换后的图像及其直方图的变化。

I=imread('rice.tif');

imshow(I)

figure,imhist(I)

J=imadjust(I,[0.15 0.9],[0 1]);

figure,imhist(J)

figure,imshow(J)

I=imread('cameraman.tif');

imshow(I)

figure,imhist(I)

J=imadjust(I,[0 0.2],[0.5 1]);

figure,imhist(J)

figure,imshow(J)

1.3直方图均衡化

分别对图像‘pout.tif’和‘tire.tif’进行直方图均衡化处理,比较处理前后图像及直方图分布的变化。

I=imread('pout.tif');

imshow(I)

figure,imhist(I)

J=histeq(I);

figure,imhist(J)

figure,imshow(J)

I=imread('tire.tif');

imshow(I)

figure,imhist(I)

J=histeq(I);

figure,imshow(J)

figure,imhist(J)

2、空域滤波增强

2.1噪声模拟

利用函数imnoise给图像‘eight.tif’分别添加高斯(gaussian)噪声和椒盐(salt & pepper)噪声。

I=imread('eight.tif');

imshow(I)

I1=imnoise(I,'gaussian',0,0.01);

figure,imshow(I1)

I2=imnoise(I,'salt & pepper');

figure,imshow(I2)

2.2空域滤波

对上述噪声图像进行均值滤波和中值滤波,比较滤波效果。

I=imread('eight.tif');

J=imnoise(I,'salt & pepper',0.02);

imshow(J)

K1=medfilt2(J,[3 3]); % 3*3中值滤波

figure,imshow(K1)

K2=filter2(fspecial('average',5),J)/255;

figure,imshow(K2)

均值滤波和中值滤波的特点及使用场合

均值滤波器是一种最常用的线性低通平滑滤波器。可抑制图像中的噪声,但同时也使图像变得模糊;中值滤波器是一种最常用的非线性平滑滤波器。可消除图像中孤立的噪声点,又可产生较少的模糊。

3、自己编写m文件代码,实现求灰度图像的灰度直方图,并与imhist函数的结果比较。

4、先对图像rice.tif进行直方图均衡化处理,并绘制直方图均衡化的转移函数的变换曲线.然后对图像rice.tif均衡化成32个灰度级的直方图作为原始图像得期望直方图.并说明图像处理的效果差别。

I=imread('rice.tif');

J=histeq(I);

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

subplot(2,2,2),imshow(J),title('直方图均衡化图像')

subplot(2,2,3),imhist(I),title('原是图像直方图')

subplot(2,2,4),imhist(J),title('直方图均衡化图像直方图')

I=imread('rice.tif');

[J,T]=histeq(I);%进行直方图均衡化

figure,plot((0:1/255:1),T) %绘制转移函数的变换曲线

由处理效果图可见图像经过直方图均衡化图像的细节更加清楚了,均衡化图像的动态范围扩大了。但是由于直方图的均衡化没有考虑图像的内容,只是简单地将图像进行直方图均衡,使图像看起来亮度过高,也就是说直方图的方法不够灵活,于是又提出了其他的图像增强的方法。

下面是用将图像rice.tif均衡化成32个灰度级的直方图作为原始图像的期望直方图,对图像rice.tif进行直方图规定化的程序清单:

I=imread('rice.tif');

J=histeq(I,32);

[counts x]=imhist(J);

figure(2)

subplot(2,2,1),imshow(I)

subplot(2,2,2),imhist(I)

M=histeq(I,counts);

subplot(2,2,3),imshow(M)

subplot(2,2,4),imhist(M)

5、对一个图像进行不同大小模板的均值滤波,并比较结果。

I=imread('eight.tif');

J=imnoise(I,'salt & pepper',0.02); %对指定的图像加入椒盐噪声

subplot(2,2,1),imshow(J);title('含噪声的图像');

K1=filter2(fspecial('average',3),J)/255; %进行3*3模板的均值滤波

K2=filter2(fspecial('average',5),J)/255; %进行5*5模板的均值滤波

K3=filter2(fspecial('average',7),J)/255; %进行7*7模板的均值滤波

subplot(2,2,2),imshow(K1);title('3*3模板的均值滤波后的图像');

subplot(2,2,3),imshow(K2);title('5*5模板的均值滤波后的图像');

subplot(2,2,4),imshow(K3);title('7*7模板的均值滤波后的图像');

结果分析:

对以上用不同尺寸的滤波器模板进行滤波操作的图像进行比较,可以看到:

随着所使用的滤波器尺寸的增大,消除噪声的效果得到了增强;但是,图像的细节锐化程度相应降低,图像变得模糊起来。

6、对一个图像进行不同大小模板的中值滤波,并比较结果。

I=imread('eight.tif');

J=imnoise(I,'salt & pepper',0.02); %对指定的图像加入椒盐噪声

subplot(2,2,1),imshow(J);title('含噪声的图像');

K1=medfilt2(J,[3 3]) %进行3*3模板的中值滤波

K2=medfilt2(J,[5 5]) %进行5*5模板的中值滤波

K3=medfilt2(J,[7 7]) %进行7*7模板的中值滤波

subplot(2,2,2),imshow(K1);title('3*3模板的中值滤波后的图像');

subplot(2,2,3),imshow(K2);title('5*5模板的中值滤波后的图像');

subplot(2,2,4),imshow(K3);title('7*7模板的中值滤波后的图像');

结果分析:

可以看到,中值滤波不像均值滤波器那样使图像的边界模糊,它在衰减噪声的同时,使图像的细节清楚。

7、自己编写m文件代码,实现某幅图像的3*3的均值滤波。

实验三图像频域变换及应用

(2学时)

【实验目的】

1、了解傅立叶变换、离散余弦变换及Radon变换在图像处理中的应用;

2、掌握Matlab图像频域变换的基本函数的使用;

3、理解图像频域变换的意义;

【实验内容】

1、傅立叶变换

1.1 绘制一个二值图像矩阵,并将其傅立叶函数可视化。

f=zeros(30,30);

f(5:24,13:17)=1;

imshow(f,'notruesize')

F=fft2(f);

F2=log(abs(F));

figure,imshow(F2,[-1 5],'notruesize');colormap(jet);

F=fft2(f,256,256); %零填充为256×256矩阵

figure,imshow(log(abs(F)),[-1 5],'notruesize');colormap(jet);

F2=fftshift(F); %将图像频谱中心由矩阵原点移至矩阵中心

figure,imshow(log(abs(F2)),[-1 5],'notruesize');colormap(jet);

1.2 利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像‘text.tif’,抽取其中的字母‘a’。

bw=imread('text.tif');

a=bw(59:71,81:91);

imshow(bw);

figure,imshow(a);

C=real(ifft2(fft2(bw).*fft2(rot90(a,2),256,256)));%求相关性

figure,imshow(C,[]);

thresh=max(C(:));

figure,imshow(C>thresh-10)

figure,imshow(C>thresh-15)

2、离散余弦变换(DCT)

2.1 使用dct2对图像‘autumn.tif’进行DCT变换。

RGB=imread('autumn.tif');

imshow(RGB)

I=rgb2gray(RGB); %转换为灰度图像

figure,imshow(I)

J=dct2(I);

figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;

2.2 将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较。

RGB=imread('autumn.tif');

I=rgb2gray(RGB); %转换为灰度图像

J=dct2(I);

figure,imshow(I)

K=idct2(J);

figure,imshow(K,[0 255])

J(abs(J)<10)=0; %舍弃系数

K2=idct2(J);

figure,imshow(K2,[0 255])

2.3 利用DCT变换进行图像压缩。

I=imread('cameraman.tif');

I=im2double(I);

T=dctmtx(8);

B=blkproc(I,[8,8],'P1*x*P2',T,T');

mask=[1 1 1 1 0 0 0 0

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 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)

3、Radon变换

3.1 使用Radon逆变换重建图像。

P=phantom(256); %创建256灰度级大脑图

imshow(P)

theta1=0:10:170;[R1,xp]=radon(P,theta1); %18个投影

theta2=0:5:175; [R2,xp]=radon(P,theta2); %36个投影

theta3=0:2:178; [R3,xp]=radon(P,theta3); %90个投影

figure,imagesc(theta3,xp,R3);colormap(hot);colorbar

% 使用逆变换重构图像

I1=iradon(R1,10); %用R1重构图像

I2=iradon(R2,5); %用R2重构图像

I3=iradon(R3,2); %用R3重构图像

figure,imshow(I1)

figure,imshow(I2)

figure,imshow(I3)

4、上机编程题思考题

4.1 绘制一个二值图像矩阵,并将其傅里叶函数可视化。

说明:这个例子将创建一个矩阵,然后用一个二进制图像显示。再对这个图像矩阵做傅里叶变换,显示其幅值。

%创建矩阵

f=zeros(40,40);

f(5:24,13:17)=1;

subplot(1,2,1),imshow(f);title('矩阵的显示');

%进行图像f的傅里叶变换

F=fft2(f);

%对幅值取对数

F2=log(abs(F));

subplot(1,2,2),imshow(F2,[-1 5],'notruesize');title('傅里叶变换显示');

4.2 调试如下程序。分析该程序的功能,写上必要注释。

figure(1);

f=imread('f:\双语教学\2007双语课件\图片\room.bmp');

f=rgb2gray(f);

subplot(2,2,1),imshow(f)

F=fft2(f);

S=fftshift(log(1+abs(F)));

S=gscale(S);

subplot(2,2,2),imshow(S)

h=fspecial('sobel')';

PQ=paddedsize(size(f));

H=freqz2(h,PQ(1),PQ(2));

H1=double(ifftshift(H));

subplot(2,2,3),imshow(abs(H),[])

subplot(2,2,4),imshow(abs(H1),[])

gs=imfilter(double(f),h); %generate the filtered images in the spatial domain. gf=dftfilt(f,H1); %generate the filtered images in the spatial domain.

figure(2);

subplot(3,2,1),imshow(gs,[])

subplot(3,2,2),imshow(gf,[])

subplot(3,2,3),imshow(abs(gs),[])

subplot(3,2,4),imshow(abs(gf),[])

subplot(3,2,5),imshow(abs(gs)>0.2*abs(max(gs(:))))

subplot(3,2,6),imshow(abs(gf)>0.2*abs(max(gs(:))))

4.3 对图像autumn.tif进行离散余弦变换,并对处理后图像进行简单分析。

RGB=imread('autumn.tif');

%将彩色图像转换为灰度图像

I=rgb2gray(RGB);

subplot(1,2,1),imshow(I);

title('原始图像')

%进行离散余弦变换

J=dct2(I);

subplot(1,2,2),imshow(log(abs(J)),[]);

title('DCT结果')

从显示结果可以看出,图像的能量很大一部分在变换矩阵的左上角。

实验四图像形态学操作及其应用

(2学时)

【实验目的】

1、掌握图像二值形态学基本运算;

2、掌握MATLAB图像膨胀、腐蚀、开启、闭合等形态学操作函数的使用;

3、了解二进制图像的形态学应用;

4、了解空间变换函数及图像匹配方法;

5、理解图像对象标记的原理,理解图像形态学操作在目标特征提取中的意义;

【实验内容】

1、图像膨胀

1.1 对包含矩形对象的二进制图像进行膨胀操作。

BW=zeros(9,10);

BW(4:6,4:7)=1;

imshow(BW,'notruesize')

se=strel('square',3); %正方形结构元素

BW2=imdilate(BW,se);

figure,imshow(BW2,'notruesize')

1.2 改变上述结构元素类型(如:line, diamond, disk等),重新进行膨胀操作。对图像‘text.tif’进行上述操作,观察不同结构元素膨胀的效果。

BW3=imread('text.tif');

imshow(BW3)

se2=strel('line',11,90); %线型结构元素

BW4=imdilate(BW3,se2);

figure,imshow(BW4)

2、图像腐蚀

2.1 对图像‘circbw.tif’进行腐蚀操作。

BW1=imread('circbw.tif');

se=strel('arbitrary',eye(5));

BW2=imerode(BW1,se);

imshow(BW1)

figure,imshow(BW2)

2.2 对图像‘text.tif’进行腐蚀操作。

BW=imread('text.tif');

se=strel('line',11,90);

BW2=imerode(BW3,se);

imshow(BW)

figure,imshow(BW2)

3、膨胀与腐蚀的综合使用

3.1 从原始图像‘circbw.tif’中删除电流线,仅保留芯片对象。

方法一:先腐蚀(imerode),再膨胀(imdilate);

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[40 30]); %选择适当大小的矩形结构元素

BW2=imerode(BW1,se); %先腐蚀,删除较细的直线

figure,imshow(BW2)

BW3=imdilate(BW2,se); %再膨胀,恢复矩形的大小

figure,imshow(BW3)

方法二:使用形态开启函数(imopen)。

BW1=imread('circbw.tif');

imshow(BW1)

se=strel('rectangle',[40 30]);

BW2=imopen(BW1,se); %开启操作

figure,imshow(BW2)

3.2 改变结构元素的大小,重新进行开启操作,观察处理结果。

se=strel(‘rectangle’,[20 10]);

se=strel(‘rectangle’,[50 40]);

3.3 置结构元素大小为[4 3],同时观察形态开启(imopen)与闭合(imclose)的效果,总结形态开启与闭合在图像处理中的作用。

I=imread('circbw.tif');

imshow(I)

se=strel('rectangle',[4 3]);

I1=imopen(I,se); %开启操作

I2=imclose(I,se); %闭合操作

figure,imshow(I1)

figure,imshow(I2)

4、高帽与低帽变换

读入图像‘pearlite.tif’,分别显示其高帽变换与低帽变换结果,并与原图像比较。(设se=strel('disk',5);)。

I=imread('pearlite.tif');

subplot(221),imshow(I)

se=strel('disk',5);

J=imtophat(I,se);

subplot(222),imshow(J)

K=imbothat(I,se);

subplot(223),imshow(K)

L=imsubtract(imadd(J,I),K);

subplot(224),imshow(L)

5、图像极值的处理方法

5.1 对于下图所示的图像矩阵A,利用函数imregionalmax寻找其局部极大值

A=[10 10 10 10 10 10 10 10 10 10;

10 13 13 13 10 10 11 10 11 10;

10 13 13 13 10 10 10 11 10 10;

10 13 13 13 10 10 11 10 11 10;

10 10 10 10 10 10 10 10 10 10;

10 11 10 10 10 18 18 18 10 10;

10 10 10 11 10 18 18 18 10 10;

10 10 11 10 10 18 18 18 10 10;

10 11 10 11 10 10 10 10 10 10;

10 10 10 10 10 10 11 10 10 10];

B=imregionalmax(A)

5.2 利用函数imextendedmax寻找像素值大于其邻域像素值2个单位的局部极大值。C=imextendedmax(A,2)

*创建一幅图像,求其距离矩阵。

bw=zeros(5,5);

bw(2,2)=1;bw(4,4)=1;

D=bwdist(bw)

center1=-10;

center2=-center1;

dist=sqrt(2*(2*center1)^2);

radius=dist/2*1.4;

lims=[floor(center1-1.2*radius) ceil(center2+1.2*radius)];

[x,y]=meshgrid(lims(1):lims(2));

bw1=sqrt((x-center1).^2+(y-center2).^2)<=radius;

bw2=sqrt((x-center2).^2+(y-center2).^2)<=radius;

bw1=sqrt((x-center1).^2+(y-center1).^2)<=radius;

bw=bw1|bw2;

imshow(bw)

D=bwdist(bw);

figure,imshow(D,[ ])

D1=bwdist(~bw);

figure,imshow(D1,[ ])

6、使用伪彩色显示标记矩阵

BW=[0 0 0 0 0 0 0 0;

0 1 1 0 0 1 1 1;

0 1 1 0 0 0 1 1;

0 1 1 0 0 0 0 0;

0 0 0 1 1 0 0 0;

0 0 0 1 1 0 0 0;

0 0 0 1 1 0 0 0;

0 0 0 0 0 0 0 0]

X=bwlabel(BW,4)

RGB=label2rgb(X,@jet,'k');

imshow(RGB,'notruesize')

7、利用选择控制点实现图像匹配

Matlab图像匹配的步骤:

将标准图像和待匹配图像读入Matlab;指定图像中的控制点对并保存;使用互相关性进一步协调控制点对(可选);制定所需变换类型并根据控制点对推断变换参数;变换未匹配的图像。%读入待匹配图像和标准图像

unr = imread('westconcordaerial.png');

imshow(unr)

orthophoto = imread('westconcordorthophoto.png');

figure,imshow(orthophoto)

%选择图像中对应的控制点

cpselect(unr(:,:,1),orthophoto)

%保存控制点对

input_points

base_points

%使用相关性进一步协调控制点对

input_points_corr=cpcorr(input_points,base_points,unr(:,:,1),orthophoto);

input_points_corr

%根据控制点对推断空间变换参数

mytform=cp2tform(input_points,base_points,'projective');

%变换未匹配的图像

registered=imtransform(unr,mytform);

figure,imshow(registered)

8、上机编程题思考题

8.1 用形态学算子去掉图像circles.tif的内点,抽取骨架和细化。

BW1=imread('D:\MATLAB6p5\toolbox\images\imdemos\circles.tif');

imshow(BW1);

%用形态学算子去除图像的内点

BW2=bwmorph(BW1,'remove');

%用形态学算子抽取图像的骨架

BW3=bwmorph(BW1,'skel',Inf);

%用形态学算子细化图像

BW4=bwmorph(BW1,'thin',Inf);

subplot(2,2,1);

imshow(BW1);title('原图像');

subplot(2,2,2);

课程设计任务书41912

课程设计任务书 题目:110KV河津变电所初步设计 设计时间:2011年 8月15日至2011年 8月 28日

110kV 河津变电站设计 一、原始资料 1、设计依据 根据省市电网公司批文《河津变电所设计任务书的批复》。 2、建站的必要性 河津市县,随着国民经济的发展,工农业生产增长需要,迫切要求供电容量增长,根据省电网公司批文,决定新建河津变。河津变用35KV和10KV两个电压等级向其用户供电,主要35KV负荷有:三个35变电所、以及一类负荷的造纸厂、化工厂、医院;主要10KV负荷有:属于一类负荷的站甲和水厂,二类负荷的站乙毛纺厂、水泥厂、纺织厂等。负荷的用电量大,对供电可靠性要求比较高。 3、建设规模 本变电所经两条110KV送电线,分别从两个已建成的变电所获得电源。 4、站址条件 (1)所址:河津变电所 (2)水文气象:该地区气候,平均气温15度,最高气温35度,最低气温-15度。 (3)交通、水源情况:东侧有一条国家三级公路,进所公路为0.4公里;附近有河流,供水方便,水量充足。 (4)地区气温: ?1?年最高气温35℃,年最低气温–15℃。?2?年平均气温15℃。 二、电气资料 1、待建110kV河津变电所距离新绎变电所和洛阳变电所都为50km。 2、待建110KV河津变电站年负荷增长率为5%,变电站总负荷考虑五年发展规划。 3、待设计变电站地理位置示意如下图: 3、待建110KV河津变电所各电压级负荷数据如下表: 三、设计任务 1、进行负荷分析及变电所主变压器容量、台数和型号的选择。 2、进行电气主接线的技术经济比较,确定主接线的最佳方案。 3、计算短路电流,列出短路电流计算结果。 4、主要电气设备的选择。 四、设计成果 设计说明书和计算书。 五、参考资料 1、发电厂电气原理 2、电能系统基础

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

matlab图像处理实验报告

图像处理实验报告 姓名:陈琼暖 班级:07计科一班 学号:20070810104

目录: 实验一:灰度图像处理 (3) 实验二:灰度图像增强 (5) 实验三:二值图像处理 (8) 实验四:图像变换 (13) 大实验:车牌检测 (15)

实验一:灰度图像处理题目:直方图与灰度均衡 基本要求: (1) BMP灰度图像读取、显示、保存; (2)编程实现得出灰度图像的直方图; (3)实现灰度均衡算法. 实验过程: 1、BMP灰度图像读取、显示、保存; ?图像的读写与显示操作:用imread( )读取图像。 ?图像显示于屏幕:imshow( ) 。 ?

2、编程实现得出灰度图像的直方图; 3、实现灰度均衡算法; ?直方图均衡化可用histeq( )函数实现。 ?imhist(I) 显示直方图。直方图中bin的数目有图像的类型决定。如果I是个灰度图像,imhist将 使用默认值256个bins。如果I是一个二值图像,imhist使用两bins。 实验总结: Matlab 语言是一种简洁,可读性较强的高效率编程软件,通过运用图像处理工具箱中的有关函数,就可以对原图像进行简单的处理。 通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。

实验二:灰度图像增强 题目:图像平滑与锐化 基本要求: (1)使用邻域平均法实现平滑运算; (2)使用中值滤波实现平滑运算; (3)使用拉普拉斯算子实现锐化运算. 实验过程: 1、 使用邻域平均法实现平滑运算; 步骤:对图像添加噪声,对带噪声的图像数据进行平滑处理; ? 对图像添加噪声 J = imnoise(I,type,parameters)

工程造价管理课程设计任务书

山东建筑大学本科学生课程设计任务书 课程设计题目*****工程项目成本指标分析 学院管理工程学院专业房地产经营与管理年级2011级 已知参数和设计要求: 本课程设计所要达到的目的:基于收集到的工程项目概预算书,分析某项目的成本指标,并在此基础上提出管理建议。使学生进一步深入掌握成本管理的理论知识,并将所学专业知识应用于工程项目管理实践,培养学生的实际工作能力。 主要任务: 从房地产公司、施工单位、咨询公司或从网上下载完成的招投标文书,每个同学的工程项目不同,需要从建设单位角度和施工单位角度制定该项目的成本控制方案。 设计成果: 1、网络上下载的估算报告或概预算书原文(电子版和纸板); 2、成本指标分析课程设计文本(内容详见附表)。 主要要求: 1、课程设计要求每人独立完成,设计的结果由设计人员每人单独提交。 2、课程设计方案的深度:各种管理建议要落实到可以操作的层面上,比如某 一具体的措施能够明确到某个人或部门能够执行;至少要完成附表中的相关指标分析。 3、严格按照学校课程设计要求进行。 学生应完成的工作: ●成本规划与成本控制的理论; ●设计和施工阶段各成本控制要点; ●结合实际工程项目的成本构成分析成本管理的具体措施; ●结合实际工程项目分析成本各子项控制与项目总成本之间的关系。

目前资料收集情况(含指定参考资料): 1、《建设工程成本计划与控制》(任宏主编,中国高等教育出版社); 2、《工程项目管理》(丛培经主编,中国建筑工业出版社); 3、《建设工程成本规划与控制》; 4、课程设计任务书; 5、工程管理相关网站; 6、其它相关资料。 课程设计的工作计划: 1、明确设计内容和要求,0.5天; 2、设计任务计划的制定,0.5天; 3、完成项目成本控制方案并提交成果,5天。 任务下达日期 2013 年 12 月 19 日完成日期 2013 年 12 月 27 日

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

东南大学数字图像处理实验报告

数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:

原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

图像处理实验报告

重庆交通大学 学生实验报告 实验课程名称数字图像处理 开课实验室数学实验室 学院理学院年级信息与计算科学专业 2 班学生姓名李伟凯学号631122020203 开课时间2014 至2015 学年第 1 学期

实验(一)图像处理基础 ?实验目的 学习Matlab软件的图像处理工具箱,掌握常用的一些图像处理命令;通过编程实现几种简单的图像增强算法,加强对图像增强的理解。 ?实验内容 题目A.打开Matlab软件帮助,学习了解Matlab中图像处理工具箱的基本功能;题目B.掌握以下常见图像处理函数的使用: imread( ) imageinfo( ) imwrite( ) imopen( ) imclose( ) imshow( ) impixel( ) imresize( ) imadjust( ) imnoise( ) imrotate( ) im2bw( ) rgb2gray( ) 题目C.编程实现对图像的线性灰度拉伸y = ax + b,函数形式为:imstrech(I, a, b); 题目D.编程实现对图像进行直方图均衡化处理,并将实验结果与Matab中imhist 命令结果比较。 三、实验结果 1).基本图像处理函数的使用: I=imread('rice.png'); se = strel('disk',1); I_opened = imopen(I,se); %对边缘进行平滑 subplot(1,2,1), imshow(I), title('原始图像') subplot(1,2,2), imshow(I_opened), title('平滑图像') 原始图像平滑图像

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

课程设计任务书

广东工业大学课程设计任务书 题目名称 带式运输机传动装置 学生学院 材料与能源学院 专业班级 10金材(2)班 姓 名 张泽添 学 号 3110006711 一、课程设计的内容 设计一带式运输机传动装置(见 图1)。设计内容应包括:两级传动装置的总体设计;传动零件、轴、轴承、联轴器等的设计计算和选择;减速器装配图和零件工作图设计;设计计算说明书的编写。 图2为参考传动方案。 二、课程设计的要求与数据 已知条件: (1)运输带工作拉力:F =2.7 kN ; (2)运输带工作速度:v = 2 m/s ; (3)卷筒直径: D = 320 mm ; (4)使用寿命: 8年; (5)工作情况:两班制,连续单向运转,载荷较平稳; 动力及传动装置 D v F 图1 带式运输机传动装置 图2 参考传动方案

(6)制造条件及生产批量:一般机械厂制造,小批量; (7)工作环境:室内,轻度污染环境; (8)边界连接条件:原动机采用一般工业用电动机,传动装置与工作机分别在不同底座上,用弹性联轴器连接。 三、课程设计应完成的工作 (1)减速器装配图1张; (2)零件工作图1张; (3)设计说明书1份。 四、课程设计进程安排

五、应收集的资料及主要参考文献 (1)杨可桢、程光蕴主编. 机械设计基础[M]. 北京:高等教育出版社,1999年6月第4版 (2)林怡青、谢宋良、王文涛编著. 机械设计基础课程设计指导书[M]. 北京:清华大学出版社,2008年11月第1版 (3)机械制图、机械设计手册等。 发出任务书日期:2012年 04月16 日指导教师签名: 计划完成日期: 2012年 04月27 日基层教学单位责任人签章: 主管院长签章:

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

课程设计任务书内容

课程设计任务书 (第六组) 一、设计题目 年产23万件床头柜生产工艺设计 建厂条件 1地址:吉林市 2.投资:大规模 三、课程设计内容 1家具结构的确定 2工艺流程的确定 3设备选型、台数计算及设备布置 4简单成本计算 5设计说明书的编写 四、课程设计要求 1、设计说明书内容: 包含:设计题目、设计任务、家具零部件图(简图A4幅面)若干张、工艺流程图(A4幅面)若干张、设备布置平面图一张(A3幅面以上)、计算过程和结果、材料消耗清单一份、简单成本核算以及其他需要说明的内容。 简单成本核算 = 材料成本 + 设备费用与折旧 + 建筑成本与折旧 + 水电费用 + 人员工资 2、设计说明书的格式如下: ①所有文字内容使用A4幅面打印,图纸根据要求确定。 ②正文文字内容使用“宋体”、大小为“小四”。 ③封面、首页样式见附页。

机床位置和工作位置的计算 机床位置和工作位置的计算,按下列步骤进行: (1)按下列公式计算按年生产计划所需的机床小时数: T=tAnk/60 式中: T—按年生产计划该工序所需的机床小时数,h; t—零件加工的工时定额,min; A—年生产计划规定的产量; n—该零件在制品中的数量; k—考虑到生产过程中零件报废的系数(k>1) T也可以按下列公式计算 T=T 1+T 2 式中:T 1 是工件(L)跟进给速度(V)之比 T 1 =L/V T 2 是辅助事件(安装时间,取放工件时间,空行程时间,其他时间) T=T 1 K K=1.2~1.5 (2)对于不只是加工一种零件,而是加工多种零件的机床设备及工作位置,按下式统计出按年生产计划在该工序上所需的总的机床小时数∑T。即: ∑T=T 1+T 2 +T 3 +……+T n 式中:T 1 T 2 T 3 ……T n —分别为按年计划各种零件在该工序上所需的机床小时数。 (3)计算机床设备全年拥有的机床小时数T 按下列公式计算: T =[365-(52×2+11)]CSK 式中:365 —年的总天数; 52×2 —是周六和周日休息天数; 11 —年的公假日; C —工作班数(1); S —每班的工作时间; K —报废系数(0.85~0.95) T =[365-115]×1×8×0.9=1800h 有的机床是一班工作制: T =1800×1=1800h 有的机床是两班工作制: T =1800×2=3600h (4)计算机床设备和工作位置数n按下列公式计算: n=∑T/T (5)确定时机需采用机床设备及工作位置数m,当设备或工作的极速昂的小数部分超过0.25时应圆整为整数,即采用台数要多一台,当计算数的小数部分不足0.25时,一般情况下可以舍去,即采用台数为计算的整数部分,通过调整机床负荷等措施来解决,但对于某些特殊的专用设备,为了保持加工路线的直线型和保证工艺需要,使用负荷再小也要采用,如燕尾开榫机,小带锯,打眼机等。 (6)计算设备负荷百分率P P=100∑T/(mT )

数字图像处理实验报告92184

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同 一图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果, 要求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后 的图像。 4) 运用for 循环,将加有椒盐噪声的图像进行10 次,20 次均值滤波,查看其特点, 显示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤 波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理, 要求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif

数字图像处理实验

学院计算机与通信工程学院专业生物医学工程专业 班级51111 学号5111133 姓名杨静 指导教师贾朔 2014年04月21日

实验一图像的基本运算 一、实验目的: 1、掌握图像处理中的点运算、代数运算、逻辑运算和几何运算及应用。 2、掌握各种运算对于图像处理中的效果。 二、实验内容: 1、(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.2,b=0.6,c=0.1,d=0.9. (2)设置非线性扩展函数的参数c=2. (3)采用灰度级倒置变换函数s=255-r进行图像变换 (4)设置二值化图像的阈值,分别为level=0.4,level=0.7 解:参考程序如下: I=imread('C:\lena8.jpg'); figure; subplot(2,3,1); imshow(I); title('原图'); J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(2,3,2); imshow(J); title('线性扩展'); I1=double(I); %将图像转换为double类型 I2=I1/255; %归一化此图像 C=2; K=C*log(1+I2); %求图像的对数变换 subplot(2,3,3); imshow(K); title('非线性扩展'); M=im2bw(I,0.5); M=~M; %M=255-I; %将此图像取反 %Figure subplot(2,3,4); imshow(M); title('灰度倒置'); N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4 N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7 subplot(2,3,5); imshow(N1); title('二值化阈值0.4'); subplot(2,3,6); imshow(N2); title('二值化阈值0.7');

图像处理实验报告模板

桂林电子科技大学 实验报告 一、实验目的 1、掌握基本的图像处理方法,包括读取、写入、显示、剪切、运算以及快操作 等等。 2、掌握常用的图像变换方法,分析变换结果。 二、实验内容 编写程序,在Matlab下调试运行,并注意观察分析结果。 1、使用imread函数分别读入图象cameraman.tif 、canoe.tif,并使用subplot 和imshow函数进行显示。再使用imcrop对第一幅图片进行剪切,并保存成文件。 2、申明向量X和矩阵A,使用二维傅立叶变换和fftshift函数进行处理,观察向量和矩阵结果。 3、创建一个1000*1000的全0图像,其中选择某矩形区域设置其象素为1(350:649,475:524),对该二值图逆时针旋转45°角,比较旋转前后的图像和傅里叶变换频谱。 三、实验设备、环境 计算机 四、实验原理 1、图像平滑算法 (1) 简单平均法:

设某像素的灰度值为,迭加噪声后,一幅含噪声的图像可表示为 现取以为中心的邻域S ——NN 方形窗口,在S 域内进行局部平均,得 式中,N 的平方为窗口内像素总数。令 ,则 式中,加权函数 (2)中值滤波: 中值滤波是一种非线性的信号处理方法。中值滤波器在1971 年由J.w.Jukey 首先提出并应用在一维信号处理技术(时间序列分析)中,后来被二维图象信号处理技术所引用。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波、均直滤波等带来的图象细节模糊,而且对滤除脉冲干扰及图象扫描噪声最为有效。由于在实际运算过程中不需要图象的统计特征,因此这也带来不少方便。但是对于一些细节多,特别是点、线、尖顶细节多的图象不宜采用中值滤波。中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代值定点(一般是窗口的中心点)的灰度值。对于奇数个元素,中值是指按大小排序后,中间的数值;对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。 一般选用3*3或5*5窗口,形状可分为方形或十字形,如下图所示。 (a) 方形 (b) 十字形 图2-1 二维中值滤波窗口形状 二维中值滤波可表示为

数字图像处理实验报告实验三

中南大学 数字图像处理实验报告实验三数学形态学及其应用

实验三 数学形态学及其应用 一.实验目的 1.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算open :

B B X ⊕Θ=)(X B 4.闭close :∨ Θ⊕=B B X X B )( 5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配 ),(21T T T =模板由两部分组成。1T :物体,2T :背景。 {} C x x i X T X T X T X ??=?21, 图5-3 击不中变换示意图 性质: (1)φ=2T 时,1T X T X Θ=? (2))()()(21T X T X T X C Θ?Θ=? C T X T X )()(21Θ?Θ= )/()(21T X T X ΘΘ= 6.细化/粗化 (1)细化(Thin ) C T X X T X XoT )(/??=?= 去掉满足匹配条件的点。 图5-4 细化示意图 系统细化{}n B oB XoB T Xo ))(((21=, i B 是1-i B 旋转的结果(90?,180?,270?)共8种情况 适于细化的结构元素 1111000d d I = d d d L 10110 0= (2)粗化(Thick ) )(T X X T X ??=? 用(){}0,01=T (){}0,12=T 时,X X X T X =?=? X 21 1 1 2 3 T ? XoT X ? X X ?T X ΘT T ⊕

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

图像处理实验报告

实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日

实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;

相关文档
最新文档