数字图像处理实验指导书-matlab实验其他 联系客服

发布时间 : 星期三 文章数字图像处理实验指导书-matlab实验其他更新完毕开始阅读4831b79481c758f5f71f6766

数字图像处理实验报告

一、实验目的

1熟悉MATLAB的操作和基本功能;

2理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;

二、实验原理

1 初始坐标为(x, y)的点经过平移(x0,y0),坐标变为(x',y'),两点之间的关系为:??x'?x?x0,以矩阵形式表示为:

?y'?y?y0?x'??1 0 x0 ??x???y? ?y'???0 1 y0???????1??1???????1??0 0 2 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变

换和水平镜像变换,两者的矩阵形式分别为:

?x'???1 0 0 ??x??y'???0 ??y?

1 0???????0 1??1???????0 ?1? 0 ? ?x??x'??1 0?y'???0 -? ?y?

1 0 ???????? 1 1??1???????0 0?3 图像缩小和放大变换矩阵相同:

?x'??Sx 0 0 ??x??y'???0 S 0??y?

y??????????1??1???0 0 ??1? 当Sx?1, Sy?1时,图像缩小;Sx?1, Sy?1时,图像放大。

4 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。其变换

矩阵为:

sin? 0??x??x'??cos? ?y'????sin? cos? 0??y? ??????? 0 1??1????0 ???1??该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(a,b)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

三、实验步骤

1 启动MATLAB程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作,与实验箱运行结果进行比对;

2 记录和整理实验报告

四、实验仪器

1计算机;

2 MATLAB程序; 3记录用的笔、纸。

实验内容

1. 对图像库中的任意图像进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作。 2. 对图像库中的任意图像使用Sobel算子提取边缘。

五、实验报告内容

1叙述实验过程; % 实验内容

% 1. 对图像库中的任意图像进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作。

% 2. 对图像库中的任意图像使用Sobel算子提取边缘。 clc;close all;clear all; %%

f=imread('sy1.jpg');

figure(1);subplot(1,2,1);imshow('sy1.jpg');title('原图'); %%

[m,n,x]=size(f);f=double(f); for i=1:10 mx=10*i; my=10*i;

g=zeros(m,n,x)+255;

%g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my?,1:x);? g(1:m-mx,1:n-my,1:x)=f(mx+1:m,my+1:n,1:x); end

subplot(1,2,2);imshow(uint8(g));title('平移'); %%

f=double(f);h=size(f);

f_fliplr(1:h(1),1:h(2),1:h(3))=f(1:h(1),h(2):-1:1,1:h(3)); g=uint8(f_fliplr);

figure(2);subplot(1,2,1);imshow(uint8(g));title('水平镜像');%水平镜像变换 f2=imrotate(g,45,'crop');

subplot(1,2,2);imshow(uint8(f2));title('顺时针旋转45度'); %%

h=size(f);

f1=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3)); for m=1:h(1) for n=1:h(2)

f1(m+round(n*tan(pi/6)),n,1:h(3))=f(m,n,1:h(3)); end end

figure(3);subplot(1,2,1);imshow(uint8(f1));title('水平30度');

f_flipud(1:h(1),1:h(2),1:h(3))=f(h(1):-1:1,1:h(2),1:h(3)); %垂直镜像变换 f1=uint8(f_flipud);

subplot(1,2,2);imshow(uint8(f1));title('垂直镜像'); %%

f2=imresize(f,0.4,'bilinear');%nearest,bilinear,bicubic三种不同的插值算法 figure(4);imshow(uint8(f2));title('缩放0.4倍'); f3=imresize(f,1.5,'bilinear');

figure(5);imshow(uint8(f3));title('放大1.5倍'); %%

f4=imread('sy1.jpg');

grayPic=rgb2gray(f4);%转换成灰度图像 newGrayPic=edge(grayPic,'sobel');

figure(6);imshow(newGrayPic);title('Sobel算子锐化后的图像'); 2提交实验的原始图像和结果图像。