MATLAB数字图像处理实验--图像基本运算

合集下载

数字图像处理实验报告 实验一 图像增强实验

数字图像处理实验报告 实验一 图像增强实验

实验一图像增强实验一、实验目标:掌握图像增强的算法。

二、实验目的:1. 了解灰度变换增强和空域滤波增强的Matlab实现方法2. 掌握直方图灰度变换方法3. 掌握噪声模拟和图像滤波函数的使用方法三、实验内容:(1)图像的点操作、邻域操作算法。

(2)图像的直方图处理算法。

四、实验设备:1.PIII以上微机; 2.MATLAB6.5;五、实验步骤:(1)读入图像:用matlab函数实现图像读入(可读入Matlab中的标准测试图像)(原始图像)(2)实现图像点操作运算(如gamma校正,对数校正等)(3)实现图像的邻域处理(实现均值滤波,拉普拉斯滤波)(4)实现直方图均衡处理matlab 源程序clear all;clc;f=imread('girl_noise.jpg');figure,imshow(f),title('原始图像');[m,n]=size(f);f0= im2double(f); % 整型转换为double 类f1=f0;std_i=zeros(1,m-2);%灰线处理for i=2:m-1%灰线处理std_i(i-1)=std(f0(i,:));if(std_i(i-1)<0.1)for j=1:mf0(i,j)=(f0(i-1,j)+f0(i+1,j))/2;endendendfigure,imshow(f0),title('滤除灰线后的图像');fz=f0-f1;[r,c]=find(fz~=0);%寻找灰线噪声的位置f2=f0;change=0;count=0;for i=3:m-2%白线处理for j=1:mif(abs(f0(i,j)-f0(i-1,j))>0.2&&abs(f0(i,j)-f0(i+1,j))>0.2) count=count+1;endif(count>n*0.8)count=0;change=1;break;endendif(change==1)for k=1:mf0(i,k)=(f0(i-1,k)+f0(i+1,k))/2;endchange=0;count=0;endendfigure,imshow(f0),title('滤除白线后的图像');fz1=f2-f0;[r1,c1]=find(fz1~=0); %寻找白线噪声的位置fn = medfilt2(f0); %反射对称填充figure, imshow(fn),title('中值滤波后的图像');f0 = im2double(fn); % 整型转换为double 类g =2*f0- imfilter(f0,w4, 'replicate'); % 增强后的图像figure, imshow(g),title('高提升滤波图像(A=2)');图像处理结果六、结果分析从上面结果可以看出,带状噪声处理部分,已经基本将带状噪声去除。

MATLAB图像处理

MATLAB图像处理
位图位图图像由基本显示单元像点构图像由基本显示单元像点构图像像点图像像点8bit256色色16bit161665536色色24bit242416m色色88位图像位图像1616位图像位图像2424位图像位图像二进制位与图像之间二进制位与图像之间存在严格的位映射关存在严格的位映射关像点由若干个二进制位进行描述像点由若干个二进制位进行描述二进制位代表图像颜色的数量二进制位代表图像颜色的数量具有位映射关系的图叫作位图具有位映射关系的图叫作位图位图特指图位图特指图像素像素是图片大小的基本单位图像的像素大小是指位图在高宽两个方向的像素数相乘的结果例如宽度和高度均为100像素的图片其象素数是10000像素我们经常用的数码相机像素数所描述的就是相机拍照出来的照片是多大尺寸300万像素的数码照片通常是20481536像素而500万像素数码照片则是25601920像素
附2
MATLAB的数字图像处理
●所谓数字图像处理(digital image processing),就是 利用计算机对图像进行去除噪声、增强、恢复、分割、
提取特征等的理论、方法和技术。
1 数字图像的基本概念
● 图像分辨率 清晰度 绝对清晰度 视觉效果
● Resolution (分辨率)单位
dpi (display pixels / inch)
汉王指纹考勤机
指纹识别系统
纹形(箕形、斗形、弓形) 模式区 全局特征(描述了 指纹的总体结构) 核心点 三角点
指纹的基本特征
纹数
局部特征(指指纹纹乱上的节点的特征,这 些特征提供了指纹唯一性的确认信息)
指纹识别系统
纹形可以分为箕形、弓形、斗形,如下图所示。其他的 指纹图案都是基于这三种基本图案
箕形纹

位图

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计--基于Matlab的数字图像处理数字图像处理课程设计基于Matlab的数字图像处理——图像的运算院系信息技术学院专业班级电气6班学号 201107111282姓名何英娜指导教师章瑞平课程设计时间 2012年11月目录一、摘要 (3)二、图像代数运算1、1图像的加法运算 (4)1、2图像的减法运算 (4)1、3图像的除法运算 (4)1、4绝对差值运算 (7)1、 5 图像的求补运算 (7)3三、图像的几何运算2、1 图像插值 (7)2、2图像的旋转 (8)2、3图像的缩放 (9)2、4图像的投影变换 (10)2、4图像的剪切 (11)四、课程设计总结与体会 (13)五、参考文献 (14)摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切46、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。

图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。

四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下:I=imread('rice.png');subplot(2,2,1),imshow(I),title('原图像1'); J=imread('cameraman.tif');subplot(2,2,2),imshow(J),title('原图像52');K=imadd(I,J,'uint16'););subplot(2,2,3),imshow(K,[]),title('相加后图像'2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。

图像与MATLAB数字图象处理汉化版

图像与MATLAB数字图象处理汉化版
• 图像的数字化 • 图像变换 • 图像增强 • 图像恢复 • 图像分割 • 图像分析和理解 • 图像压缩
MATLAB的图像处理函数分类 :
• 图像的几何操作 • 图像变换 • 图像分析和增强 • 图像压缩
图像格式和类型
• 真彩色图像(RGB图像) 利用R0、.61G1、8 B三0.个83分92量表示一个像素的颜色。
图像变换:
• 图像变换是图像处理的重要工具。通过变换,改变图像的表示域,可以对图像的后继 处理带来极大的方便。
• 例如: 傅立叶变换:图像的频域分析 离散余弦变换: 使能量集中利于图像压缩。
傅立叶变换的例子:
• load imdemos saturn2 • imshow(saturn2) • b=fft2(saturn2); • figure • imshow(log(abs(b)),[]) • colormap(jet(64)); • colorbar
RGB色系 —— 颜色构成
品红(255,0,255)
蓝(0,0,255)
青(0,255,255)
白(255,255,255)
红(255,0,0)
黑(0,0,0)
绿(0,255,0)
黄(255,255,0)
R:200 G:50 B:120
2.3索引彩色图像 2.4数据类型和相互转换 2.5图像文件和格式
• I=imread(‘tire.tif’);
%读入图像
• J=histeq(I);
%直方图均化
• subplot(1,2,1),imshow(I) %显示原始图像
• subplot(1,2,2),imshow(J) %显示增强后图像
• figure
• subplot(1,2,1),imhist(I,64) %显示直方图

数字图像处理matlab课程设计

数字图像处理matlab课程设计

数字图像处理matlab课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的表示和存储方式;2. 学会使用MATLAB软件进行数字图像处理,掌握相关函数和工具箱的使用方法;3. 掌握图像增强、滤波、边缘检测等基本图像处理技术;4. 了解图像分割、特征提取等高级图像处理技术。

技能目标:1. 能够运用MATLAB进行图像读取、显示和保存操作;2. 能够独立完成图像的增强、滤波等基本处理操作;3. 能够运用边缘检测算法对图像进行处理,提取关键特征;4. 能够根据实际需求选择合适的图像处理技术,解决实际问题。

情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣,激发其学习热情;2. 培养学生的团队合作意识,使其学会在团队中分享和交流;3. 培养学生严谨的科学态度,使其注重实验数据的真实性;4. 培养学生的创新思维,鼓励其探索新方法,提高解决问题的能力。

本课程旨在通过数字图像处理MATLAB课程设计,使学生在掌握基本理论知识的基础上,运用MATLAB软件进行图像处理实践。

课程注重理论与实践相结合,培养学生具备实际操作能力,并能运用所学知识解决实际问题。

针对学生的年级特点,课程目标既注重知识技能的传授,又关注情感态度价值观的培养,为学生今后的学习和工作奠定基础。

二、教学内容1. 数字图像处理基础- 图像表示与存储(RGB、灰度、二值图像)- 图像类型转换- MATLAB图像处理工具箱介绍2. 图像增强- 直方图均衡化- 伽玛校正- 图像锐化3. 图像滤波- 均值滤波- 中值滤波- 高斯滤波- 双边滤波4. 边缘检测- 索贝尔算子- 拉普拉斯算子- Canny边缘检测5. 图像分割- 阈值分割- 区域生长- 分水岭算法6. 特征提取与描述- 霍夫变换- SIFT算法- ORB算法教学内容根据课程目标进行选择和组织,注重科学性和系统性。

教学大纲明确分为六个部分,分别对应数字图像处理的基础知识、图像增强、滤波、边缘检测、图像分割和特征提取与描述。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。

二、实验设备计算机,Matlab程序平台。

三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。

任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。

噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。

消除图像噪声的工作称为图像平滑或滤波。

针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。

平滑可以在空间域进行,也可以在频率域进行。

1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。

假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。

因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。

对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。

2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。

其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。

其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。

二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。

2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。

Lab

《数字图像处理》实验一、图像操作1、 MATLAB的图像输入输出和显示函数imread()和imwrite()可以读写bmp、jpg/jpeg、gif、tif/tiff、png、hdf、pcx、xwd、ico格式文件。

读索引文件,还可以得到相应的调色板数据。

auread()、auwrite()、wavread()和wavwrite()可以方便地读写au和wav文件,并可以控制其中的位及频率。

image()、imagesc()、imshow()和imview()显示图像。

imfinfo()可以得到读入图像的信息,如文件的大小、格式、格式版本号、图像的高度、宽度、颜色类型等。

2、图像文件信息可以通过调用imfinfo函数获得与图像文件有关的信息,其调用格式如下: INFO=imfinfo(FILENAME, ‘FMT’)INFO=imfinfo(FILENAME)其中,INFO是一个结构体,包含与文件的具体类型有关的文件信息,对于每一种类型的文件,INFO都包含这样一些信息:文件名、文件格式、文件格式版本号、文件的修正数据、文件的字节大小、图像宽度(以像素为单位)、图像高度(以像素为单位)。

每个像素所占的位数、图像类型等。

例如:info=imfinfo('Lenna.bmp') 或info=imfinfo('Lenna.bmp','bmp')。

而info.Width表示图像的宽度;info.Height表示图像的高度,等等。

3、读取图像函数imread()可以从任何MATLAB支持的图形图像文件格式中以任意位深度读取一幅图像,其基本调用格式如下:A=imread(FILENAME)[A, MAP]=imread(FILENAME, ‘FMT’)其中,FILENAME为需要读入的图像文件名。

FMT为图像格式(可以是BMP、JPG/JPEG、GIF、TIF/TIFF、PNG、HDF、PCX、XWD、CUR和ICO),如果不指定FMT参数,那么系统将根据文件名自动判断图像类型。

如何进行MATLAB图像处理

如何进行MATLAB图像处理一、引言图像处理是计算机视觉和图像分析领域中的重要任务之一。

而MATLAB是一种强大的数学计算软件,也被广泛应用于图像处理。

本文将介绍如何使用MATLAB进行图像处理,并探讨一些常见的图像处理技术。

二、图像处理基础在开始使用MATLAB进行图像处理之前,我们需要了解一些基础知识。

一个图像通常由像素组成,每个像素都有一个灰度值或者RGB(红绿蓝)三个通道的值。

图像的处理可以分为两个主要方面:空间域处理和频域处理。

1. 空间域处理空间域图像处理是指直接对图像的像素进行操作,常见的处理方法包括亮度调整、对比度增强和图像滤波等。

MATLAB提供了一系列函数和工具箱来进行这些处理。

例如,要调整图像的亮度,可以使用imadjust函数。

该函数可以通过调整输入图像的灰度值范围,实现亮度的增强或者降低。

下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像J = imadjust(I,[0.2 0.8],[0 1]); % 调整亮度范围imshow(J); % 显示图像```2. 频域处理频域图像处理是指将图像从空间域转换到频域进行处理,常见的处理方法包括傅里叶变换和滤波等。

MATLAB提供了fft和ifft等函数来进行频域处理。

例如,要对图像进行傅里叶变换,可以使用fft2函数。

该函数将图像转换为频率域表示,可以进一步进行滤波等处理。

下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像F = fft2(I); % 傅里叶变换F = fftshift(F); % 频率域中心化imshow(log(1 + abs(F)),[]); % 显示频率域图像```三、图像处理技术了解了图像处理的基础知识后,我们可以探索一些常见的图像处理技术。

以下将介绍几个常用的技术,并给出相应的MATLAB代码示例。

matlab图像处理基础实例

matlab图像处理基础实例·边缘检测(edge)边缘检测时先要把其他格式图像转化为灰度图像>> f=imread('');>> a=rgb2gray(f);>> [g,t]=edge(a,'canny');>> imshow(g)·剪贴(imcrop)、subplot等imfinfo colormap subimageimadd imsubtract immultiply imdivide imresize imrotate(旋转)>> a=imread('');>> b=imcrop(a,[75 68 130 112]);% I2 = IMCROP(I,RECT)% RECT is a 4-element vector with the form [XMIN YMIN WIDTH HEIGHT]; % subplot(121)⼀⾏两列的显⽰,当前显⽰第⼀个图⽚>> subplot(121);imshow(a);>> subplot(122);imshow(b);·roipoly选择图像中的多边形区域>> a=imread('');>> c=[200 250 278 248 199 172];>> r=[21 21 75 121 121 75];>> b=roipoly(a,c,r);>> subplot(121);imshow(a);>> subplot(122);imshow(b);·roicolor按灰度值选择的区域>> a=imread('');>> i=rgb2gray(a);>> b=roicolor(i,128,255);>> subplot(121);imshow(a);>> subplot(122);imshow(b);·转化指定的多边形区域为⼆值掩膜poly2mask>> x=[63 186 54 190 63];>> y=[60 60 209 204 60];>> b=poly2mask(x,y,256,256); >> imshow(b);>> holdCurrent plot held>> plot(x,y,'b','LineWidth',2)·roifilt2区域滤波a=imread('');i=rgb2gray(a);c=[200 250 278 248 199 172];r=[21 21 75 121 121 75];b=roipoly(i,c,r);h=fspecial('unsharp');j=roifilt2(h,i,b);subplot(121),imshow(i);subplot(122),imshow(j);·roifill区域填充>> a=imread('');>> i=rgb2gray(a);>> c=[200 250 278 248 199 172]; >> r=[21 21 75 121 121 75]; >> j=roifill(i,c,r); >> subplot(211);imshow(i);>> subplot(212);imshow(j);·FFT变换f=zeros(100,100);f(20:70,40:60)=1;imshow(f);F=fft2(f);F2=log(abs(F));imshow(F2),colorbar·补零操作和改变图像的显⽰象限f=zeros(100,100);f(20:70,40:60)=1;subplot(121);imshow(f);F=fft2(f,256,256);F2=fftshift(F);subplot(122);imshow(log(abs(F2)))·离散余弦变换(dct)>> a=imread('');>> i=rgb2gray(a);>> j=dct2(i);>> subplot(131);imshow(log(abs(j))),colorbar >> j(abs(j)<10)=0;>> k=idct2(j);>> subplot(132);imshow(i);>> subplot(133);imshow(k,[0,255]);info=imfinfo('')%显⽰图像信息·edge提取图像的边缘canny prewitt sobelradon函数⽤来计算指定⽅向上图像矩阵的投影>> a=imread('');>> i=rgb2gray(a);>> b=edge(i);>> theta=0:179;>> [r,xp]=radon(b,theta);>> figure,imagesc(theta,xp,r);colormap(hot); >> xlabel('\theta(degrees)'); >> ylabel('x\prime');>> title('r_{\theta}(x\prime)');>> colorbar·filter2均值滤波>> a=imread('');>> i=rgb2gray(a);>> imshow(i)>> k1=filter2(fspecial('average',3),i)/255;%3*3 >> k2=filter2(fspecial('average',5),i)/255;%5*5 >> k3=filter2(fspecial('average',7),i)/255;%7*7 >> figure,imshow(k1)>> figure,imshow(k2)>> figure,imshow(k3)wiener2滤波eg:k=wiener(I,[3,3]))medfilt2中值滤波同上deconvwnr维纳滤波马赫带效应(同等差⾊带条)·减采样>> a=imread('');>> b=rgb2gray(a);>> [wid,hei]=size(b);>> quarting=zeros(wid/2+1,hei/2+1); >> i1=1;j1=1;>> for i=1:2:widfor j=1:2:heiquarting(i1,j1)=b(i,j);j1=j1+1;endi1=i1+1;j1=1;end>> figure>> imshow(uint8(quarting))>> title('4倍减采样')>> quarting=zeros(wid/4+1,hei/4+1); i1=1;j1=1;for i=1:4:widfor j=1:4:heiquarting(i1,j1)=b(i,j);j1=j1+1;endi1=i1+1;j1=1;end>> figure,imshow(uint8(quarting)); title('16倍减采样')结论:在采⽤不同的减采样过程中,其图像的清晰度和尺⼨均发⽣了变化灰度级转化>> a=imread('');>> b=rgb2gray(a);>> figure;imshow(b)>> [wid,hei]=size(b);>> img2=zeros(wid,hei);>> for i=1:widfor j=1:heiimg2(i,j)=floor(b(i,j)/128);endend>> figure;imshow(uint8(img2),[0,2]) %2级灰度图像图像的基本运算>> i=imread('');>> figure;subplot(231);imshow(i);>> title('原图');>> j=imadjust(i,[.3;.6],[.1 .9]);%Adjust image intensity values or colormap图像灰度值或colormap调整% J = IMADJUST(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT])>> subplot(232);imshow(j);title('线性扩展');>> i1=double(i);i2=i1/255;c=2;k=c*log(1+i2);>> subplot(233);imshow(k);>> title('⾮线性扩展');>> m=255-i;>> subplot(234);imshow(m)>> title('灰度倒置')>> n1=im2bw(i,.4);n2=im2bw(i,.7);>> subplot(235);imshow(n1);title('⼆值化阈值')>> subplot(236);imshow(n2);title('⼆值化阈值')图像的代数运算加。

实验1--图像的基本操作

实验1--图像的基本操作(总7页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.MarchGDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称图像的基本操作课程名称数字图像处理课程号学院(系)信息学院专业电子信息工程班级电子1103班学生姓名杜嘉星学号1308实验地点实验日期实验1 图像的基本操作一、实验目的:学会用MATLAB工具箱中的函数对图像进行读取、显示和保存等的基本操作。

二、实验内容:1、仔细阅读MATLAB帮助文件中有关函数imread, size, whos, imshow, imwrite的使用说明,能充分理解其使用方法。

2、并能运用以上函数完成相应的实验操作。

三、实验要求:掌握并能熟练应用上述函数。

实验报告需要提交每步处理的命令并回答相关的问题。

四、实验相关知识:学习有关函数的使用imread使用函数imread可以将图像读入MATLAB环境,imreaed的语法为imread(’filename’),其中filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。

例如,f=imread(‘’);要想读取指定路径中的图像,最简单的办法就是在filename中输入完整的或相对的。

例如,f=imread(‘D:\myimages\’);size函数size可给出一幅图像的行数和列数。

用如下格式可自动确定一幅图像的大小:[M,N]=size(f); 该语法将返回图像的行数(M)和列数(N)。

whos函数whos可以显示出一个数组的附加信息。

语句为:whos fimshow在MATLAB桌面上图像一般使用函数imshow来显示,该函数的基本语法为:imshow(f, G)。

其中,f是一个图像数组,G是显示该图像的灰度级数。

若省略G,则默认的灰度级数是256。

语法imshow(f, [low high])会将所有小于或等于low的值都显示为黑色,所有大于或等于high的值都显示为白色。

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

MATLAB数字图像处理实验--图像基本运算一、实验目的1.理解图像点运算、代数运算、几何运算的基本定义和常见方法;2.掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;3.掌握在MATLAB中进行插值的方法4.运用MATLAB语言进行图像的插值缩放和插值旋转5.进一步熟悉了解MATLAB语言的应用。

二、实验设备与软件1.PC计算机系统2.MATLAB软件,包括图像处理工具箱(Image Processing Toolbox)3.实验图片三、实验内容及结果分析3.1图像的点运算选择pout.tif作为实验图像,实验原理及内容参照《MATLAB图像处理编程及应用》程序代码:I=imread('pout.tif');figure;subplot(1,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]);subplot(1,3,2);imshow(J);title('线性扩展');I1=double(I);I2=I1/255;C=2;K=C*log(1+I2);subplot(1,3,3);imshow(K);title('非线性扩展');M=255-I;figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);N2=im2bw(I,0.7);subplot(1,3,2);imshow(N1);title('二值化阈值0.4');subplot(1,3,3);imshow(N2);title('二值化阈值0.7');执行结果:原图线性扩展非线性扩展灰度倒置二值化阈值0.4二值化阈值0.7实验1结果图3.2图像的代数运算选择两幅图像,一幅是原图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。

(1)选取两幅大小一样的图像1.jpg和2.jpg,将两幅图像进行加法运算。

程序代码:clc;clear;I1=imread('1.jpg');I2=imread('2.jpg');I1=im2double(I1);I2=im2double(I2);K=0.5*I1+0.5*I2;subplot(1,3,1);imshow(I1);title('原图像');subplot(1,3,2);imshow(I2);title('背景图像');subplot(1,3,3);imshow(K);title('相加后的图像');imwrite(K,'1_2.jpg');执行结果:原图像背景图像相加后的图像图像的叠加实验结果结果分析:两个矩阵相加,执行点对点运算,两边操作数的矩阵必须是同型的。

若K=I1+0.5*I2,则图像结果溢出,修改程序结果如上。

多个图像相加不产生溢出的条件是所有图像叠加不能超过数据类型所支持的最大值(各系数之和不大于1)。

如果把I1=im2double(I1)改成I1=double(I1)则程序执行结果是“原图像”和“相加后的图像”都溢出。

(2)选择(1)中得到的混合图像12.jpg,将混合图像与背景图像2.jpg做减法运算,得到源图像。

程序代码:clc;clear;I3=imread('1_2.jpg');I4=imread('2.jpg');I3=im2double(I3);I4=im2double(I4);C=(I3-0.5*I4)*2;subplot(1,3,1);imshow(I3);title('混合图像');subplot(1,3,2);imshow(I4);title('背景图像');subplot(1,3,3);imshow(C);title('分离后的图像');执行结果:混合图像背景图像分离后的图像图像的分离实验结果(3)程序实现一幅尺寸为MXN像素的图像作为掩模模板(M、N的大小与源图像一致),对于需要留下来的区域,掩模图像的像素值置为1,而在需要被抑制掉的区域,掩模图像的像素值置为0(可以使用图像3.jpg)程序代码:clc;clear;I5=imread('3.jpg');I5=im2double(I5);I=zeros(264,352,3);I(32:232,26:326,:)=1;D=I5.*I;subplot(1,3,1);imshow(I5);title('原图像');subplot(1,3,2);imshow(I);title('模板图像');subplot(1,3,3);imshow(D);title('局部图像');执行结果:原图像模板图像局部图像图像的局部效果图3.3图像的缩放对一幅图像实现按比例缩小和不按比例任意缩小的效果,以及图像的成倍放大和不按比例放大效果。

选取一幅图像3.jpg,分别将图像比例放大1.5倍,比例缩小0.7倍,非比例放大到620×380像素,非比例缩小到80×180像素。

程序代码:clc;clear;I1=imread('3.jpg');I2=imresize(I1,1.5);I3=imresize(I1,0.7);I4=imresize(I1,[620,380]);I5=imresize(I1,[80,180]);figure;imshow(I1);title('原图像');figure;subplot(2,2,1);imshow(I2);title('比例放大1.5倍图');subplot(2,2,2);imshow(I3);title('比例放大0.7倍图');subplot(2,2,3);imshow(I4);title('非比例放大图');subplot(2,2,4);imshow(I5);title('非比例缩小图');执行结果:原图像比例放大1.5倍图比例放大0.7倍图非比例放大图非比例缩小图图像的缩放实验结果图3.4图像的旋转将图像lena.tiff分别旋转45度和90度,与原图像相比,观察它们的区别。

读取图像lena.tiff,设置旋转角度分别45度和90度,采用图像旋转函数imrotate对图像进行旋转。

程序代码:clc;clear;I=imread('lena.tiff');J=imrotate(I,45);K=imrotate(I,90);subplot(1,3,1);imshow(I);title('原图像');subplot(1,3,2);imshow(J);title('旋转45度图像');subplot(1,3,3);imshow(K);title('旋转90度图像');执行结果:原图像旋转45度图像旋转90度图像图像的旋转实验结果图3.5.实验要求设计一个程序完成下列要求。

(图像可以自选,如lena.tiff)(1)给一幅图像加入密度为0.06椒盐噪声后并与前一张图显示在同一图像对话框中;程序代码:clc;clear;I=imread('lena.tiff');J=imnoise(I,'salt & pepper',0.06);subplot(1,2,1),imshow(I),title('原图像');subplot(1,2,2),imshow(J),title('加椒盐噪声');执行结果:原图像加椒盐噪声实验5(1)结果图(2)给一幅图像加入均值为0,方差为0.01的高斯噪声后并与前一张图显示在同一图像对话框中;程序代码:clc;clear;I=imread('lena.tiff');J=imnoise(I,'gaussian',0,0.01);subplot(1,2,1),imshow(I),title('原图像');subplot(1,2,2),imshow(J),title('加高斯噪声');执行结果:原图像加高斯噪声实验5(2)结果图(3)运用for循环,将100幅加有噪声的图像进行相加并求其平均值,显示求平均后图像。

比较均值去噪方法对零均值高斯和椒盐两张噪声的去噪效果。

程序代码:clc;clear;I=imread('lena.tiff');K1=zeros(512,512);K2=zeros(512,512);for i=1:100J1=imnoise(I,'gaussian',0,0.01);J2=imnoise(I,'salt & pepper',0.01);J1=im2double(J1);J2=im2double(J2);K1=K1+J1;K2=K2+J2;endK1=K1/100;K2=K2/100;subplot(1,2,1),imshow(K1),title('高斯噪声相加求平均后的图像');subplot(1,2,2),imshow(K2),title('椒盐噪声相加求平均后的图像');执行结果:高斯噪声相加求平均后的图像椒盐噪声相加求平均后的图像实验5(3)结果图(4)观察图像pout.tif 的直方图; 程序代码: clc; clear;I=imread('pout.tif');subplot(1,2,1),imshow(I),title('原图像'); subplot(1,2,2),imhist(I),title('图像的直方图');执行结果:原图像图像的直方图实验5(4)结果图(5)利用matlab 的imadjust 函数实现的图像pout.tif 对比度增强。

程序代码:clc; clear;I=imread('pout.tif'); J=imadjust(I,[0.3 0.7],[]);subplot(1,2,1),imshow(I),title('原图像');subplot(1,2,2),imshow(J),title('对比度增强后的图像');执行结果:原图像对比度增强后的图像实验5(5)结果图4.思考题(1)为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?答:不同类型的图像其存储的结构也是不同的,图像运算只能对同种类型的图像矩阵进行运算。

相关文档
最新文档