当前位置:文档之家› matlab实验报告

matlab实验报告

Matlab实验报告
实验二图像处理
一、实验目的
(1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用;
(2)通过实验进一步掌握图像处理的基本技术和方法。

二、实验内容及代码
㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换
首先,在matlab页面中的current directory下打开存放图像的文件夹。

1.显示各种图像
⑴显示彩色图像:
①代码:>> mousetif=imread('tif.TIF');
>> image(mousetif)
显示截图:
②代码:>> mousetif=imread('tif.TIF');
>> imshow(mousetif)
显示截图:
③代码:mousetif=imread('tif.TIF');
subimage(mousetif)
显示截图:
显示截图:
⑵显示二值图像
①代码:>> I=imread('单色bmp.bmp');
>> imagesc(I,[0 2])
显示截图:
②代码:>> I=imread('单色bmp.bmp');
>> imshow(I,2)
显示截图:
③代码:>> I=imread('单色bmp.bmp');
>> subimage(I)
显示截图:
⑶显示灰度图像
①代码:>> I1=imread('256bmp.bmp');
>> imagesc(I1,[0,256])
显示截图:
代码:>> I1=imread('256bmp.bmp');
>> colormap(gray);
>> subplot(1,2,1);
>> imagesc(I1,[0,256]);
>> title('灰度级为[0 256]的mouse.bmp图');
>> subplot(1,2,2);
>> imagesc(I1,[0,64]);
>> colormap(gray);
>> title('灰度级为[0 64]的mouse.bmp图');
显示截图:
⑷显示索引图像
代码:>> mousetif=imread('tif.TIF');
>> [x,map]=rgb2ind(mousetif,0.7);
>> subplot(1,2,1);
>> imshow(mousetif);
>> title('彩色图像');
>> subplot(1,2,2);
>> imshow(x,map);
>> title('索引图');
截图显示:
彩色图像索引图
2.图像之间的转换
⑴索引图像转灰度图像
代码:>> II1=ind2gray(x,map);
>> imshow(x,map);
>> title('索引图像');
>> imshow(II1);
>> title('灰度图像');
截图显示:
索引图像
灰度图像
⑵ 索引图像转彩色图像
⑶ 索引图像转二值图像
⑷ 灰度图像转索引图像
代码:>> I1=imread('256bmp.bmp');
>> subplot(1,2,1);
>> imagesc(I1,[0,256]); >> colormap(gray); >> title('灰度图');
>> [x,map]=gray2ind(I1,256); >> subplot(1,2,2); >> image(x);
>> colormap(map); >> title('索引图');
显示截图:
灰度图
2004006008001000
100200300400500600索引图
2004006008001000
100
200
300
400
500
600
⑸灰度图像转彩色图像
⑹灰度图像转二值图像
⑺彩色图像转灰度图像
⑻彩色图像转索引图像
代码:>> mousetif=imread('tif.TIF');
>> [x,map]=rgb2ind(mousetif,0.7);
>> subplot(1,2,1);
>> imshow(mousetif);
>> title('彩色图像');
>> subplot(1,2,2);
>> imshow(x,map);
>> title('索引图');
显示截图:
彩色图像索引图
⑼彩色图像转二值图像
⑽二值图像转索引图像
⑾二值图像转彩色图像
⑿二值图像转灰度图像
㈡应用MA TLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。

然后将它们进行逆变换,观察逆变换后的图像。

⑴傅里叶变换
代码:>> II1=ind2gray(x,map);
>> F1=fft2(II1);
Warning: FFTN on values of class UINT8 is obsolete.
Use FFTN(DOUBLE(X)) or FFTN(SINGLE(X)) instead.
> In uint8.fftn at 10
In fft2 at 19
>> F2=ifft2(F1);
>> subplot(2,2,1);
>> imshow(II1);
>> title('原图像');
>> subplot(2,2,2);
>> imshow(F1)
Warning: Displaying real part of complex input.
> In imuitools\private\imageDisplayParseInputs>validateCData at 286
In imuitools\private\imageDisplayParseInputs at 205
In imshow at 151
>> title('傅里叶变换');
>> subplot(2,2,3);
>> imshow(log(abs(F1)),[]);
>> title('傅里叶变换频谱');
>> subplot(2,2,4);
>> imshow(F2);
>> title('傅里叶变换逆变换');
显示截图:
原图像傅里叶变换
傅里叶变换频谱傅里叶变换逆变换
⑵离散余弦变换
代码:>> II1=ind2gray(x,map);
>> subplot(1,2,1);
>> imshow(II1);
>> title('原图像');
>> subplot(1,2,2);
>> lsyx=dct2(II1);
>> imshow(log(abs(lsyx)));
>> title('DCT变换系数矩阵');
显示截图:
原图像DCT变换系数矩阵
㈢应用MATLAB语言编程来实现一幅图像的增强。

相关主题