实验一 MATLAB数字图像处理初步

合集下载

数字图像处理基础程序及运行结果图像matlab程序

数字图像处理基础程序及运行结果图像matlab程序

数字图像处理基础程序及运行结果图像matlab程序目录实验一MATLAB数字图像处理初步 (2)实验二图像的代数运算 (7)实验三图像增强—灰度变换 (11)实验四图像增强—直方图变换 (14)实验五图像增强—空域滤波 (16)实验六图像的傅立叶变换 (22)实验七图像增强—频域滤波 (24)实验八彩色图像处理 (27)实验九图像分割 (33)实验十形态学运算 (36)实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验内容及步骤1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg 文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp 图像,设为flower.bmp。

7.用imread()读入图像:Lenna.jpg 和camema.jpg;8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。

10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow 显示出来观察图像的特征。

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

数字图像处理实验程序MATLAB

数字图像处理实验程序MATLAB

实验一内容(一)(1)彩色图像变灰度图像A=imread('1.jpg');B=rgb2gray(A);figuresubplot(1,2,1),imshow(A)title('原图')subplot(1,2,2),imshow(B)title('原图灰度图像')(2)彩色图像变索引图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')[X,map]=rgb2ind(A,128);subplot(1,2,2),imshow(X,map)title('原图索引图像')(3)彩色图像变二值图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')C=im2bw(A,0.2);subplot(1,2,2),imshow(C)title('原图二值图像')(4)灰度图像变索引图像(一)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=grayslice(B,39);subplot(1,2,2),imshow(C)title('灰度变索引图像')(5)灰度图像变索引图像(二)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')[X,map]=gray2ind(B,63);subplot(1,2,2),imshow(X,map)title('灰度变索引图像')(6)灰度图像变彩色图像A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=gray2rgb(B,map);subplot(1,2,2),imshow(C)title('灰度变彩色图像')内容(二)(1)灰度平均值A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')B=double(B);[m,n]=size(B);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+B(i,j);endendavg=sumg/(m*n) % 均值maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度(2)彩色平均值figureimshow(A)title('彩色图像')A=double(A);[m,n]=size(A);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+A(i,j);endendavg=sumg/(m*n)squre=m*nmaxg=max(max(A))ming=min(min(A))内容(三)采样量化实验二图像变换傅里叶变换、反变换、I=imread('19.jpg');A=rgb2gray(I);x1=fft2(A);x2=fftshift(x1);x3=ifft(x1)/10;figure,subplot(1,4,1);imshow(A)title('原图');subplot(1,4,2);imshow(x1)title('频谱图');subplot(1,4,3);imshow(log(abs(x2)+1),[0 10]);title('直流分量移至频谱图中心');subplot(1,4,4);imshow(x3,[0 10])title('傅里叶反变换');DCT变换、反变换I=rgb2gray(X);subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);J=dct2(I);imshow(log(abs(J)),[0 20]);title('二维离散余弦变换');subplot(1,3,3);K=idct2(J)/20;imshow(K,[0 20]);title('二维离散反余弦变换');利用DCT变换压缩图像I=imread('19.jpg');A=rgb2gray(I);B=DCT2(A);B(abs(B)<0.1)=0;C=idct2(B)/255;figure,subplot(1,3,1);imshow(A);title('原图');subplot(1,3,2);imshow(B);title('二维离散余弦变换频谱图');subplot(1,3,3);imshow(C);title('压缩后图像');实验三图像增强(一)灰度图像增强(1)线性变换法clc;clear all;I=imread('19.jpg');A=rgb2gray(I);colormap;imshow(A);%设置图像倒数参数j=imadjust(A,[0 1],[1 0],1.5);figure;subimage(j)(2)灰度图像的非线性变换(之对数)I=imread('19.jpg');colormapimshow(I)J=double(I);J=45*log(J+1);I=uint8(J);figure,subimage(J)(二)直方图校正直方图均衡I=imread('19.jpg');B=rgb2gray(I);imshow(B,[40 255]);figure,imhist(B)title('直方图')J=imadjust(B,[0.15 0.9],[0 1]); figure,imhist(B,64)title('均衡直方图')滤波I=imread('19.jpg');figure,B=rgb2gray(I);C=imnoise(B,'salt & pepper',0.02);D=imfilter(B,fspecial('average',3)); E=medfilt2(B);subplot(1,3,2)imshow(D)title('均值滤波')subplot(1,3,3)imshow(D)title('中值滤波')subplot(1,3,1)imshow(C)title('加入椒盐噪声图像')锐化处理I=imread('19.jpg');A=rgb2gray(I);figure,subplot(2,3,1),imshow(A);title('原图');hs=fspecial('sobel');S=imfilter(A,hs);hp=fspecial('prewitt');P=imfilter(A,hs);A=double(A);%双精度型H=[0 1 0,1 -4 1,0 1 0];%拉普拉斯算子J=conv2(A,H,'same');K=A-J;subplot(2,3,2),imshow(K);title('拉普拉斯锐化图像');B=edge(A,'roberts',0.1);subplot(2,3,3),imshow(B);title('罗伯特锐化图像');subplot(2,3,4),imshow(S);title('sobel算子锐化图像');subplot(2,3,5),imshow(P);title('prewitt算子锐化图像');实验四放缩A=imread('19.jpg');imshow(A);title('原图')B=imresize(A,2)figure,imshow(B);title('二倍图')C=imresize(A,0.5)figureimshow(C)title('二分之一图')旋转A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=imrotate(A,30,'nearest');subplot(1,4,2),imshow(uint8(B));title('旋转30度图像')C=imrotate(A,45,'nearest');subplot(1,4,3),imshow(uint8(C));title('旋转45度图像')D=imrotate(A,60,'nearest');subplot(1,4,4),imshow(uint8(D));title('旋转60度图像')镜像A1=imread('19.jpg');A1=double(A1);Figure,subplot(1,4,1),imshow(uint8(A1));H=size(A1);title('原像')A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(1,4,2),imshow(uint8(A2));title('垂直镜像')A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(1,4,3),imshow(uint8(A3));title('水平镜像')A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(1,4,4),imshow(uint8(A4));title('对角镜像')剪切A1=imread('19.jpg');A2=imcrop(A1,[75 68 100 110]);figuresubplot(1,2,1),imshow(A1);title('原像')subplot(1,2,2),imshow(A2);title('剪切后像')实验五阈值分割A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=im2bw(A,91/255);subplot(1,4,2),imshow(B);title('阈值91的图像')C=im2bw(A,71/255);subplot(1,4,3),imshow(C);title('阈值71的图像')D=im2bw(A,140/255);subplot(1,4,4),imshow(D);title('阈值140的图像')边缘检测I=imread('19.jpg');A=rgb2gray(I);figuresubplot(1,4,1),imshow(A);title('原图像')B=edge(A,'sobel',0.1);%edge边缘检测函数subplot(1,4,2),imshow(B);title('sobel算子检测')C=edge(A,'roberts',0.1);%0.1为门限subplot(1,4,3),imshow(C);title('roberts算子检测')D=edge(A,'prewitt',0.1);subplot(1,4,4),imshow(D);title('prewitt算子检测')所谓数字图像处理[7]就是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。

matlab数字图像处理实验报告

matlab数字图像处理实验报告
h=fspecial('average');%均值滤波器
3基于卷积的图像滤波函数
imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波, 用法类似,如:
i=imread('e:\w01.tif');
j=filter2(h,i);
或者:
h=fspecial(‘prewitt')
3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个 窗口内分成四个子窗口来分别显示,注上文字标题。
a=imread('f:\1.jpg');
m=imadjust(a,[,],[0.5;1]);%图像变亮n=imadjust(a,[,],[0;0.5]);%图像变暗g=255-a;%负片效果subplot(2,2,1);imshow(a);title('原图像') subplot(2,2,2);imshow(m);title('图像变亮') subplot(2,2,3);imshow(n);title('图像变暗') subplot(2,2,4);imshow(g);title('负片效果')
图像类型转换1rgb2gray把真彩图像转换为灰度图像irgb2grayj2im2bw通过阈值化方法把图像转换为二值图像iim2bwjlevellevel表示灰度阈值取值范围01即0n表示阈值取自原图像灰度范3imresize改变图像的大小iimresizejmn将图像j大小调整为m行n列图像运算1imadd两幅图像相加要求同样大小同种数据类型zimaddxy表示图像xy2imsubstract两幅图像相减要求同样大小同种数据类型zimsubtractxy3immultiplyzimmultiplyxy4imdivide表示图像xy表示图像xyzimdividexy表示图像xy四实验内容请将实验程序填写在下方合适的位置实验图像结果拷屏粘贴1读入一幅rgb图像变换为灰度图像和二值图像并在同一个窗口内分成三个子窗口来分别显示rgb图像和灰度图像注上文字标题

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

实验一Matlab语言、数字图象基本操作

实验一Matlab语言、数字图象基本操作

一、实验目地、复习语言地基本用法;、掌握语言中图象数据与信息地读取方法;、掌握在中绘制灰度直方图地方法,了解灰度直方图地均衡化地方法.二、实验原理是集数值计算,符号运算及图形处理等强大功能于一体地科学计算语言.作为强大地科学计算平台,它几乎能够满足所有地计算需求.文档来自于网络搜索软件具有很强地开放性和适用性.在保持内核不变地情况下,可以针对不同地应用学科推出相应地工具箱().目前,已经把工具箱延伸到了科学研究和工程应用地诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱()家族中有自己地一席之地.在实验中我们主要用到提供图象处理工具箱().文档来自于网络搜索、与数字图像处理全称是(矩阵实验室),一开始它是一种专门用于矩阵数值计算地软件,从这一点上也可以看出,它在矩阵运算上有自己独特地特点.实际上中地绝大多数地运算都是通过矩阵这一形式进行地.这一特点也就决定了在处理数字图像上地独特优势.理论上讲,图像是一种二维地连续函数,然而在计算机上对图像进行数字处理地时候,首先必须对其在空间和亮度上进行数字化,这就是图像地采样和量化地过程.二维图像进行均匀采样,就可以得到一幅离散化成×样本地数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便地了.而地长处就是处理矩阵运算,因此用处理数字图像非常地方便.文档来自于网络搜索支持五种图像类型,即索引图像、灰度图像、二值图像、图像和多帧图像阵列;支持、、、、、、、、、等图像文件格式地读,写和显示.对图像地处理功能主要集中在它地图像处理工具箱()中.图像处理工具箱是由一系列支持图像处理操作地函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作.文档来自于网络搜索、语言地基本操作语言是一种运算纸型地运算语言,其特点就是与平时在运算纸上书写运算地形式相同,这使得它成为一种比较容易掌握地语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于语言,只要有一点语言基础地人可以很快掌握.针对数字图象处理地需要,可以重点掌握以下几个内容:矩阵、向量地输入和操作(包括如何输入一个矩阵,如何产生一个全零全一地矩阵,如何对一个矩阵地行列元素进行读取、写入);矩阵与向量地基本运算(包括加、减、点乘等)文档来自于网络搜索以下主要介绍一下如何读取矩阵地指定行或指定列,举例说明:产生一个一维数组,范围从到,步长为插入:通过对进行插入运算创建矩阵>> []当然也可以用别地方法产生矩阵此处只作为示例提取:提取地前两行和后两列形成矩阵.>> ()置零:将矩阵地第二行第二列地元素置零>> ()将矩阵地第一列全置()强调一下矩阵地乘法与矩阵地点乘地不同,举例说明:文档来自于网络搜索()产生二维单位矩阵>> []直接法输入矩阵>> 求与地和(符合矩阵求和原则)>> .* 求与地点积(即两矩阵中对应元素分别相乘>> * 求与地乘积(符合矩阵乘积原则地列数与地行数相等)注意:请大家在盘建一个目录(),在每次启动时都要将这个目录加入到地搜索路径中,添加地方法为文档来自于网络搜索、中图象数据地读取、函数用于读入各种图象文件,其一般地用法为[,](‘’,‘’)其中,,分别为读出地图象数据和颜色表数据,为图象地格式,为读取地图象文件(可以加上文件地路径).文档来自于网络搜索例:[,](‘’,‘’);、函数用于输出图象,其语法格式为:()按照指定地格式将图象数据矩阵和调色板写入文件.文档来自于网络搜索、函数用于读取图象文件地有关信息,其语法格式为()函数返回一个结构,它反映了该图象地各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件地修改时间、文件地大小、文件地长度、文件地宽度、每个像素地位数、图象地类型等.文档来自于网络搜索例:(''): ':\\\\\'文档来自于网络搜索: ' ':: '': []:::: '': [ ]: ''文档来自于网络搜索::: '': '': [ ]::: [ ]::: '': []: '': []: []: []: []::::::: [ ]、中图象文件地显示函数是最常用地显示各种图象地函数,其语法如下:()其中是图象数据矩阵,是其对应地颜色矩阵,若进行图象处理后不知道图象数据地值域可以用[]代替.文档来自于网络搜索需要显示多幅图象时,可以使用语句,它地功能就是重新打开一个图象显示窗口.例:(‘’);();(‘’);();、中灰度直方图地显示图象处理工具箱提供了函数来计算和显示图象地直方图,函数地语法格式为:文档来自于网络搜索()()其中()计算和显示灰度图象地直方图,为指定地灰度级数目,默认值为.()计算和显示索引色图象地直方图,为调色板.文档来自于网络搜索例:('');(), ()、对比度增强如果原图象()地灰度范围是[,],我们希望调整后地图象()地灰度范围是[,],那么下述变换,,就可以实现这一要求.文档来自于网络搜索图象处理工具箱中提供地函数,可以实现上述地线性变换对比度增强.函数地语法格式为:文档来自于网络搜索(,[ ],[ ])文档来自于网络搜索(,[ ],[ ])返回图象经过直方图调整后地图象,[ ]为原图象中要变换地灰度范围,[ ]指定了变换后地灰度范围.文档来自于网络搜索例:('');(,[ ],[]);(), , ()三、实验要求两个图形文件和到目录下文件夹中.文档来自于网络搜索、将目录下文件夹中地图象文件读出.用到,,观察一下图象数据,了解一下数字图象在中地处理就是处理一个矩阵.将这个图象显示出来(用),尝试修改颜色矩阵地值,再将图象显示出来,观察图象颜色地变化.文档来自于网络搜索、将目录下文件夹中地图象文件读出,显示它地图象及灰度直方图,可以发现其灰度值集中在一段区域,用函数将它地灰度值调整到[,]之间,并观察调整后地图象与原图象地差别,调整后地灰度直方图与原灰度直方图地区别.文档来自于网络搜索。

数字图像处理实验matlab

数字图像处理实验matlab

计算机图像处理:学号:班级:实验一:了解数字图像处理平台一、实验目的(1)学会使用扫描仪;(2)熟悉MATLAB软件。

二、实验容(1)用扫描仪扫一幅彩色图片;一幅灰度图片。

(2)熟悉MATLAB的主界面窗口中各个窗口的功能,利用不同的矩阵输入方式给矩阵赋值,了解MATLAB的简单编程及矩阵基本知识;(3)掌握使用MATLAB的帮助来获得更多的信息。

三、实验仪器设备扫描仪、计算机和MATLAB应用软件。

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

二、实验容1.应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换。

显示原始图像:>>I=imread('D:\tu.jpg');>> imshow(I);RGB 灰度图像: 代码:>> I=imread('D:\tu.JPEG'); >> imshow(I)>> graytu=rgb2gray(I); >> subplot(1,2,1); >> subimage(I); >> subplot(1,2,2); >> subimage(graytu) 效果:1002003004005010015020025030010020030040050100150200250300RGB 转二值图像: 代码:>> [indtu,map]=rgb2ind(I,0.5); >> subplot(1,2,1); >> subimage(I); >> subplot(1,2,2); >> subimage(indtu,map) 效果:100200300400100200300100200300400100200300索引转RGB 图像: 代码:>> I1=ind2rgb(indtu,map); >> subplot(1,2,1);>> subimage(indtu,map); >> subplot(1,2,2); >> subimage(I1) 效果:100200300400100200300100200300400100200300索引转灰度图像: 代码:>> I2gtu=ind2gray(indtu,map); >> subplot(1,2,1);>> subimage(indtu,map); >> subplot(1,2,2); >> subimage(I2gtu) 效果:100200300400100200300100200300400100200300灰度转索引图像: 代码:[g2itu,map]=gray2ind(graytu,64); >> subplot(1,2,1); >> subimage(graytu); >> subplot(1,2,2); >> subimage(g2itu,map) 效果:100200300400100200300100200300400100200300RGB 转二值图像: 代码:>> r2bwtu1=im2bw(I,0.8); >> subplot(1,2,1); >> subimage(I); >> subplot(1,2,2);>> subimage(r2bwtu1)代码: 效果:100200300400100200300100200300400100200300灰度转二值图像 代码:g2bwtu1=im2bw(graytu,0.8); >> subplot(1,2,1); >> subimage(graytu); >> subplot(1,2,2); >> subimage(g2bwtu1) 效果:100200300400100200300100200300400100200300索引转二值图像 代码:>> i2bwtu=im2bw(indtu,map,0.5); >> subplot(1,2,1);>> subimage(indtu,map); >> subplot(1,2,2); >> subimage(i2bwtu) 效果:1002003004001002003001002003004001002003002. 应用MATLAB 工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图,然后将它们进行逆变换,观察逆变换后的图像 (1) 傅里叶正变换 代码:>> F=fft2(graytu); >> subplot(1,2,1); >> subimage(graytu); >> subplot(1,2,2);>> subimage(log(abs(F)),[3,10]) 效果:100200300400100200300100200300400100200300(2) 傅里叶反变换 代码:>> IF=ifft2(F); >> subplot(1,2,1);>> subimage(log(abs(F)),[3,10]); >> subplot(1,2,2); >> subimage(uint8(IF)) 效果:100200300400100200300100200300400100200300(3) DCT 变换 代码:>> B=dct2(graytu); >> subplot(1,2,1); >> subimage(graytu); >> subplot(1,2,2);>> subimage(log(abs(B)),[3,5]) 效果:100200300400100200300100200300400100200300(4) IDCT 变换 代码:>> iB=idct2(B); >> subplot(1,2,1);>> subimage(log(abs(B)),[3,5]); >> subplot(1,2,2); >> subimage(uint8(iB)) 效果:100200300400100200300100200300400100200300总结:傅里叶变化:傅里叶变换是一种特殊的积分变换。

数字图像处理实验一:熟悉Matlab图像处理工具箱

数字图像处理实验一:熟悉Matlab图像处理工具箱

实验一:熟悉Matlab图像处理工具箱一.实验目的:1.熟悉matlab图像处理工具箱;2.了解图像处理的函数及使用方法;3.学会简单的图像处理方法;二.实验原理1.二值图像二值图像是一种简单的图像格式,“0”表示黑色像素点,“255”表示白色像素点,二值图像处理运算是从数学形态学下的集合论发展起来的,基本运算比较简单,却可以产生复杂的效果。

2.反色图像对于彩色图像的R,G,B各彩色分量取反的技术就是反色处理,这在二值化图像的连通区域选取的时候非常重要,如物体连通域用黑色表示,而二值化后的物体连通域图像可那是白色的,二背景是黑色的,这时应手动选取图像的反色处理或有程序根据背景和物体连通域两种颜色的数量所占比例而自动选择是否选取图像的反色处理。

3.水平镜像图像的水平镜像是指将指定区域的图像以原图像的垂直中轴线为中心,将图像分为左右两部分进行对称变换显示在屏幕。

水平镜像时每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,所以镜像后图像的高和宽不变。

设图像的高度为Height,宽度为width,原图中坐标为(x0,y0)的点经过水平镜像后,则点(x0,y0)的坐标为(x1,y1)。

(x0,y0)和(x1,y1)的关系如下:x1=Width-x0 y1=y04.垂直翻转图像的翻转有两种,一种是水平翻转,一种是垂直翻转。

水平翻转会产生左右对调的图像,垂直翻转会产生上下对调的图像。

5.旋转30度如果果一个点(x1,y1)旋转到(x2,y2),对应的角度旋转从θ1到θ1+θ2sinθ1=y1/sqrt(x1*x1+ y1*y1)cosθ1=x1/sqrt(x1*x1+ y1*y1)sin(θ1+θ2)=sin(θ1)*cos(θ2)+cos(θ1)*sin(θ2)=y2/sqrt(x2*x2+y2*y2);cos(θ1+θ2)=cos(θ1)*cos(θ2)-sin(θ1)*sin(θ2)=x2/sqrt(x2*x2+y2*y2)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一MATLAB数字图像处理初步
一、实验内容及步骤
1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;
2.利用whos 命令提取该读入图像flower.tif的基本信息;
3.利用imshow()函数来显示这幅图像;
程序及结果:
clc,clear,close all;
I=imread('flower.tif'); % 读入原图像,tif格式
whos I % 显示图像I的基本信息
imshow(I) % 显示图像
4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;
5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

clc,clear,close all;
I=imread('flower.tif'); % 读入原图像,tif格式
% 这种格式知识用于jpg格式,压缩存储图像,q是0-100之间的整数
imfinfo ('flower.tif')
imwrite(I,'flower.jpg','quality',10);
imwrite(I,'flower.bmp'); % 以位图(BMP)的格式存储图像
flower.tif
flower.jpg
Flower.bmp
7.用imread()读入图像:Lenna.jpg 和camema.jpg;
8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;
9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。

clc,clear,close all;
I1=imread('Lenna.tif');
imfinfo('Lenna.tif');
imwrite(I1,'Lenna.jpg','quality',10);
figure(1);imshow('Lenna.jpg');
clc,clear,close all;
I1=imread('camema.tif');
imfinfo('camema.tif');
imwrite(I1,'camema.jpg','quality',10);
figure('camema.jpg'); imshow('camema.jpg');
注:figure是产生一个新的窗口imshow是显示图像
10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

clc,clear,close all;
I=imread('elephant.tif');
BW=im2bw(I,0.5)
imshow(BW);
11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来。

二、思考题
(1) 简述MatLab软件的特点。

1) 高效的数值计算及符号计算功能;
2) 具有完备的图形处理功能,实现计算结果和编程的可视化;
3) 语句简单,内涵丰富;
4) 移植性和开放性很好
5)扩充能力强,交互性好
(2) MatLab软件可以支持哪些图像文件格式?
1)BMP --Windows Bitmap
2) CUR -- Cursor File
3) GIF --Graphics Interchange Format
4) HDF --Hierarchical Data Format
5) ICO -- Icon File
6) JPEG --Joint Photographic Experts Group
7) JPEG 2000 - Joint Photographic Experts Group 2000
8) PBM --Portable Bitmap
9) PCX --Windows Paintbrush
10) PGM --Portable Graymap
11) PNG --Portable Network Graphics
12) PPM --Portable Pixmap
13) RAS --Sun Raster
14) TIFF --Tagged Image File Format
15) XWD --X Window Dump
(3) 说明函数imread 的用途格式以及各种格式所得到图像的性质。

imread的常见调用格式:A = imread(filename,fmt)
filename:读取的图像文件(可以加上文件的路径)
fmt:图像的格式
其作用是将文件名用字符串filename表示,<WBR>扩展名用fmt表示的图像文件中的数据读到矩阵A中。

<WBR>如果filename所指的为灰度级图像,则A为一个二维矩阵;
<WBR>如果filename所指的为RGB图像,则A为一个m×n×<WBR>3的三维矩阵。

<WBR>Filename表示的文件名必须在MATLAB的搜索路径范围<WBR>内,否则需指出其完整路径。

(4) 为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?
MATLAB默认的算术运算时针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号的8位,直接进行运算会溢出。

相关文档
最新文档