非常全非常详细的MATLAB数字图像处理技术
MATLAB中的图像处理技术详解
MATLAB中的图像处理技术详解
图像处理是一门涉及数字图像获取、处理、分析和展示的学科,其在各个领域
都有重要的应用。而MATLAB作为一种强大的科学计算软件,提供了丰富的图像
处理工具包,可以帮助用户轻松地进行各种图像处理操作。本文将详细介绍MATLAB中常用的图像处理技术,包括图像读取、图像显示、灰度转换、滤波操作、边缘检测以及图像分割等。
1. 图像读取和显示
首先,在MATLAB中进行图像处理的第一步是读取图像。MATLAB提供了imread函数,可以快速读取各类图像文件,例如JPEG、PNG、BMP等。读取的图
像可以是灰度图像,也可以是彩色图像。读取之后,我们可以使用imshow函数将
图像显示在MATLAB的图像窗口中,便于后续处理和分析。
2. 灰度转换
在实际的图像处理应用中,有时候我们需要将彩色图像转换为灰度图像,以方
便后续的处理和分析。MATLAB提供了rgb2gray函数,可以将彩色图像转换为灰
度图像。转换后的灰度图像只包含一个通道,每个像素点的取值范围为0~255,表
示灰度级。
3. 滤波操作
滤波操作是在图像处理中常用的一种方法,其可以对图像进行平滑或者增强等
处理。MATLAB中提供了丰富的滤波函数,例如均值滤波、中值滤波、高斯滤波等。这些滤波函数可以通过设置不同的参数来控制滤波效果,比如滤波窗口的大小、滤波核函数等。
4. 边缘检测
边缘检测是图像处理中的一个重要任务,其可以帮助我们识别图像中的边缘信息,进而进行物体检测和分割。MATLAB中提供了多种边缘检测算法,包括Sobel 算子、Canny算子等。这些算法可以根据不同的应用场景选择合适的边缘检测方法,并根据需要调整相应的参数。
使用Matlab进行图像处理的基本步骤
使用Matlab进行图像处理的基本步骤引言:
随着计算机技术的迅猛发展,图像处理技术在各个领域得到广泛应用。而Matlab作为一种功能强大的数学软件,也被广泛应用于图像处理领域。本文将介
绍使用Matlab进行图像处理的基本步骤,以帮助读者更好地理解和运用这一工具。
一、图像的读取与显示
在进行图像处理之前,我们首先需要将图像读入Matlab中。Matlab提供了imread函数来读取图像,并将读取的图像存储为矩阵形式。通过imshow函数,我
们可以将读取的图像显示出来,以便进一步的处理。
二、图像的基本操作
在图像处理过程中,我们通常需要对图像进行一些基本的操作,比如调整图像
的大小、旋转图像、图像翻转等。Matlab提供了一系列的函数来实现这些操作。
例如,imresize函数可以调整图像的大小;imrotate函数可以用来旋转图像;flipud
和fliplr函数可以进行图像的垂直和水平翻转。
三、图像的滤波处理
图像的滤波处理是图像处理中非常重要的一部分。通过滤波处理,我们可以去噪、增强图像的细节、平滑图像等。Matlab提供了一系列的滤波函数,比如均值
滤波、中值滤波、高斯滤波等。我们可以根据实际需求选择适合的滤波方法来对图像进行处理。
四、图像的灰度转换和二值化
图像的灰度转换和二值化是图像处理中经常用到的技术。通过对图像进行灰度
转换,我们可以将彩色图像转换为灰度图像,这样可以降低图像处理的复杂性。而
通过对灰度图像进行二值化处理,我们可以将图像转换为黑白图像,以便进行一些特定的处理。Matlab提供了rgb2gray函数来实现灰度转换,同时也提供了一系列
数字图像处理与机器视觉-基于MATLAB实现 第3章 MATLAB数字图像处理基础
3.1 图像的基本概念
图像:“图”是物体反射或透射光的分布,“像”是人的视觉系统所接受的图 在人脑中所形成的印象或认识,照片、绘画、剪贴画、地图、书法作品、手写汉学、 传真、卫星云图、影视画面、X光片、脑电图、心电图等都是图像。图像根据图像记 录方式的不同可分为两大类:模拟图像和数字图像。
模拟图像:与模拟信号的连续性一样,又称连续图像,是指在二维坐标系中连 续变化的图像,即图像的像点是无限稠密的,同时具有灰度值(即图像从暗到亮的 变化值)。连续图像的典型代表是由光学透镜系统获取的图像,如人的视觉系统成 像,人物照片和景物照片等。 如图3-3所示的小孔成像便是一种模拟图像。
2022年6月5日10时44分长征2号运载火箭托举着神舟十四号载人飞船从酒泉卫星 发射中心拔地而起奔赴太空,这是中国人的第9次太空远征。神舟载人飞船返回舱是 航天员在飞船发射、交会对接以及返回地面阶段需要乘坐的飞船舱。与在轨的空间站 不同,返回舱和地面之间的通信链路资源极其有限,传统的视频通信技术影响返回舱 图像的分辨率和画质。如图3-1所示,在神舟十三号及以前的飞船中,返回舱图像的 有效分辨率仅为352×288,难以适应目前高分辨率、大屏显示的画面要求。
一幅图片的图形质量越高,其数据量也就高,处理起来就越麻烦;反之,图形 质量越低的图片,数据处理起来相对轻松,但当分辨率低于一定程度时,会出现严 重的马赛克效应,如图3-7所示,当采样率越来越低时,图片的质量也越来越差,当 图片质量过低时,难以满足数字图像处理的需求。为平衡好处理速度于图像质量的 关系,取样点的选取至关重要。
MATLAB中的图像处理与计算机视觉技术
MATLAB中的图像处理与计算机视觉技术
图像处理和计算机视觉技术是计算机科学领域的关键研究方向,广泛应用于图像分析、目标识别、模式识别、人机交互等众多应用。MATLAB作为一种强大的科学计算软件,提供了丰富的图像处理与计算机视觉工具箱,帮助用户实现各种图像处理和计算机视觉应用。
一、图像处理技术
1. 基础图像处理
MATLAB提供了一系列用于图像处理的函数和工具,能够实现图像的读取、显示、保存、缩放、旋转、裁剪等基本操作。用户可以使用MATLAB的矩阵操作和向量化编程特性,高效地处理图像数据。此外,MATLAB还提供了直方图均衡化、空间滤波、频域滤波、灰度转换等常用的图像处理算法。
2. 图像增强与复原
通过应用各种滤波算法,如中值滤波、高斯滤波、锐化滤波等,可以改善图像质量。MATLAB提供了多种图像增强和复原技术,例如去噪、补偿、边缘增强和细节增强。通过调整算法参数和应用不同的增强方法,可以满足特定的图像处理需求。
3. 特征提取与描述
在图像分析和模式识别任务中,特征提取是非常重要的一步。MATLAB提供了各种特征提取和描述算法,如SIFT、HOG和LBP等,可以有效地提取图像的局部和全局特征。这些特征可以用于图像分类、目标检测和相似性匹配等应用。
4. 图像分割与边缘检测
图像分割是图像处理中常用的技术,用于将图像分割成若干个具有相似特征的区域。MATLAB提供了多种图像分割与边缘检测算法,如阈值分割、边缘检测、区域生长等。通过这些技术,可以实现图像分割、目标提取和边缘检测等任务。
二、计算机视觉技术
MATLAB数字图像处理课件
式、图像分辨率或所用的彩色空间模型,这使它适用于MATLAB。
D)PCX格式。 可处理1、4、8、16、24位等图像数据。文件内容包括文件头 、
图像数据、扩展调色板数据。
E)XWD格式。 1、8位Zpixmaps, Xybitmaps, 1位XYPixmaps。 F)TGA格式。 处理1、4、8、16、24位非压缩图像和行程编码图像。文件包由 5个固定长度字段和3个可变长度字段组成。 G)HDF格式。
3)象素:是图像在计算机显示中的度量单位,可以变化,可大 可小。 4)分辨率:是用于度量图像在显示器中清晰程度的一个参数, 分辨率越高,图像越清晰。分辨率是与象素相关的,即单位长度 上的象素数就是分辨率。由此可知,分辨率越高,象素的几何尺 寸就越小。 5)图像文件的大小:指一幅图像在计算机中保存时所占用的磁 盘空间,其大小与所用的颜色模式有关。灰度图像中的每一个灰 度象素只占用一个字节(8位),RGB图像中红、绿、蓝各占用 一个字节。另外,图像文件的大小也直接与其分辨率有关,原因 是当分辨率增加时,一幅图像所包含的象素量急剧增加。 6)句柄:就是对象的代号或标志,它能使计算机方便地找到所 需要的对象并加以相应的操作。MATLAB中的句柄图形对象包 括轴、文本、菜单、控制框、图像等。
Matlab数字图像处理简介
一.介绍应用matlab处理图像问题
1. 图像与数字图像简介 2. 图像的不同类型及在matlab中的显示 3. 常用的几个图像处理命令
如何进行MATLAB图像处理
如何进行MATLAB图像处理
一、引言
图像处理是计算机视觉和图像分析领域中的重要任务之一。而MATLAB是一种强大的数学计算软件,也被广泛应用于图像处理。本文将介绍如何使用MATLAB进行图像处理,并探讨一些常见的图像处理技术。
二、图像处理基础
在开始使用MATLAB进行图像处理之前,我们需要了解一些基础知识。一个图像通常由像素组成,每个像素都有一个灰度值或者RGB(红绿蓝)三个通道的值。图像的处理可以分为两个主要方面:空间域处理和频域处理。
1. 空间域处理
空间域图像处理是指直接对图像的像素进行操作,常见的处理方法包括亮度调整、对比度增强和图像滤波等。MATLAB提供了一系列函数和工具箱来进行这些处理。
例如,要调整图像的亮度,可以使用imadjust函数。该函数可以通过调整输入图像的灰度值范围,实现亮度的增强或者降低。下面是一个简单的例子:```matlab
I = imread('image.jpg'); % 读取图像
J = imadjust(I,[0.2 0.8],[0 1]); % 调整亮度范围
imshow(J); % 显示图像
```
2. 频域处理
频域图像处理是指将图像从空间域转换到频域进行处理,常见的处理方法包括傅里叶变换和滤波等。MATLAB提供了fft和ifft等函数来进行频域处理。
例如,要对图像进行傅里叶变换,可以使用fft2函数。该函数将图像转换为频率域表示,可以进一步进行滤波等处理。下面是一个简单的例子:```matlab
I = imread('image.jpg'); % 读取图像
Matlab数字图像处理
优势:比傅里叶变换更加灵活, 能够更好地处理非平稳信号
定义:离散余弦变换(DCT)是一种将图像从空间域转换到频域的算法 应用:DCT广泛应用于图像压缩和编码,例如JPEG标准 实现:DCT通过一系列的数学运算将图像的像素值变换为频域系数 特点:DCT具有很好的能量压缩能力,能够去除图像中的冗余信息
直方图均衡化:通过拉伸像素强度分布范围来增强图像对比度 对比度拉伸:通过线性或非线性函数调整像素强度范围来增强对比度
自适应直方图均衡化:根据局部像素强度分布进行直方图均衡化,增强局部对比度
伽马变换:通过调整伽马参数来改变像素强度分布,从而增强对比度
图像模糊的原因: 运动模糊、镜头 失真等
Matlab数字图像增 强技术:直方图均 衡化、对比度拉伸 等
边缘检测可以用于图像分割、目标 识别等任务,是计算机视觉领域的 重要技术之一。
添加标题
添加标题
添加标题
添加标题
Matlab提供了多种边缘检测算法, 如Canny算法、Sobel算法等。
在Matlab中,可以使用edge函数进 行边缘检测,该函数可以指定不同 的算法和参数。
图像边缘检测:提取图像中的边缘信息,用于图像识别和特征匹配 图像分割:将图像划分为若干个区域,提取出感兴趣的区域特征
特征描述符:提取图像中的纹理、形状、颜色等特征,用于图像分类和识别 特征降维:利用主成分分析等技术降低特征维度,提高计算效率和分类准确率
《数字图像处理(matlab版)》教程课件
FILENAME参数指定文件名。FMT为保存文件采用的格式。 imwrite(I6,'nirdilatedisk2TTC10373.bmp');
/1、图像的读取和显示
三、图像的显示
imshow(I,[low high])
I为要显示的图像矩阵。[low high]为指定显示灰度图像的灰度范围。 高于high的像素被显示成白色;低于low的像素被显示成黑色;介于 High和low之间的像素被按比例拉伸后显示为各种等级的灰色。 figure;imshow(I6);title('The Main Pass Part of TTC10373');
图像直方图归一化
imhist(I);%灰度直方图
I=imread(‘red.bmp’);%读入图像 figure;%打开新窗口 [M,N]=size(I);%计算图像大小 [counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图 counts=counts/M/N;%计算归一化灰度直方图各区间的值 stem(x,counts);%绘制归一化直方图
参数transformtype指定了变换的类型,常见的’affine’为二维或 多维仿射变换,包括平移、旋转、比例、拉伸和错切等。
Matrix为相应的仿射变换矩阵。
A=imread('nir.bmp'); [height,width,dim]=size(A); tform=maketform('affine',[-1 0 0;0 1 0;width 0 1]); B=imtransform(A,tform,'nearest'); tform2=maketform('affine',[1 0 0;0 -1 0;0 height 1]); C=imtransform(A,tform2,'nearest'); figure;imshow(A); figure;imshow(B);imwrite(B,'nir水平镜像.bmp'); figure;imshow(C);imwrite(B,'nir垂直镜像.bmp');
如何使用Matlab进行图像处理与分析
如何使用Matlab进行图像处理与分析
图像处理与分析是计算机视觉和数字图像处理领域的重要组成部分。而Matlab 作为一种高效的数值计算与数据分析工具,提供了丰富的图像处理函数和工具箱,使得图像处理与分析变得更加简单和便捷。本文将介绍如何使用Matlab进行图像处理与分析,并探讨其中的一些常见技术和方法。
1. 图像读取与显示
首先,我们需要通过Matlab将图像读取到内存中,并进行显示。Matlab提供了imread函数用于读取图像,imshow函数用于显示图像。例如,使用以下代码读取并显示一张图像:
```
img = imread('image.jpg');
imshow(img);
```
2. 图像增强与滤波
图像增强是指通过各种方法改善图像的质量和视觉效果。Matlab提供了多种图像增强函数,如亮度调整、对比度增强、直方图均衡化等。此外,滤波也是图像增强的一种重要方式,通过消除图像中的噪声和干扰来提高图像的质量。Matlab提供了多种滤波函数,如均值滤波、中值滤波、高斯滤波等。下面是一个对图像进行对比度增强和高斯滤波的示例:
```
enhanced_img = imadjust(img, [0.2 0.8], []);
filtered_img = imgaussfilt(enhanced_img, 2);
```
3. 边缘检测与特征提取
边缘检测是图像处理中的一项重要任务,用于检测出图像中物体的边界。Matlab提供了多种边缘检测函数,如Sobel、Canny、Laplacian等。特征提取是指从图像中提取出有用的特征信息,用于进行物体分类、识别等任务。Matlab提供了多种特征提取函数,如HOG、SURF、SIFT等。下面是一个对图像进行边缘检测和特征提取的示例:
[工学]MATLAB在数字图像处理
应用技术学院 和丽芳
h
1
第一章 MATLAB图像处理工具箱
1.1图像的显示和相互转换
1、常见的图像文件格式
PCX、BMP、TIF、GIF、JPG等
2、MATLAB支持的图像文件格式
BMP、HDF、 JPEG、 PCX、PNG、TIF、 XWD
h
2
3、图像类型 Matlab中最基本的数据结构是数组,大多数
h
12
(8)通过阈值化方法把灰度图像转换为索引 图像
函数:grayslice
格式: X=grayslice( I,n)
X=grayslice( I,V)
h
13
1.2 图像的显示
1、标准图像的显示 imshow
2、索引图像的显示 Imshow(X,map) 3、灰度图像的显示 Imshow(I) Imshow(I,N)
h
38
2.3 频率抽取法和matlab实现
如果一个二维FIR滤波器的冲激响应及频率响应都是 实数,则其频率响应能写出冲激响应的线性函数,既可以 应用线性规划法进行优化设计,又能利用其对称性使计算 得到简化,只需要部分冲激响应序列就可以来计算滤波器 的频率响应。
Matlab工具箱里给出了利用频率抽样法实现二维FIR 滤波器的函数fsamp2。
Imshow(I,[low,high]) 8、特殊图像的显示 (1)添加颜色条
数字图像处理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机一台;
基于MATLAB的数字图像处理技术分析
基于MATLAB的数字图像处理技术分析
摘要:本文主要针对MATLAB数字图像处理技术进行分析研究,文章中简要
分析MATLAB数字图像处理技术的原理和优势,同时也分析该技术的应用功能,
并以具体项目为例总结MATLAB数字图像处理技术的具体应用。
关键字;MATLAB;数字图像处理技术;图像处理
数字图像处理技术四基于计算机技术基础上的图像处理技术,该技术能够图
像信号转换为数字信号并进行综合处理,从而能够利用计算机就直接进行数字处
理管控,提升数字图像处理效果。而随着现代计算机技术的不断优化进步,数字
图像处理技术也逐渐升级。本文提出的MATLAB数字图像处理技术就是一种利用
了MATLAB工程语言的图像处理技术,该技术的应用具有图像处理功能全、图像
处理效率高的优势,在现代数字图像处理技术中应用,具有良好的应用效果。
1.MATLAB数字图像处理技术简要分析
MATLAB数字图像处理技术应用是以MATLAB语言为主要技术的数字图像处理
方法。MATLAB计算机软件语言是由美国mathworks公司设计研发的一种新型软件。该软件具有矩阵运算处理功能,具有数据分析功能、具有信号处理功能以及图形
显示功能,在该功能之下,数据分析信号处理的效率都非常高。并且国mathworks公司的MATLAB计算机软件语言也针对图像信号处理、神经网络系统以
及非线性系统构建设计了多种工具箱,从而方便各项功能良好开
展。 MATLAB计算机软件语言在应用的过程中,工
具箱的应用十分关键,利用工具箱可以完成多项工作处理工作。在整个工作进行
MATLAB数字图像处理技术
MATLAB 数字图像处理技术
4 MATLAB 图像增强
4.1 原理、方法及体系结构
三个阶段:图像预处理、特征抽取阶段、识别分析阶段。 目的:改善图像的视觉效果,提高图像成分的清晰度;是图像变得有利于计算机处理。 方法:空间域增强方法、频域增强方法。 体系:
图像增强:空间域、频率域、彩色增强
空间域:像素点处理(图像灰度变换、直方图修正(中值滤波、均值滤波))、领域处理(图像平滑滤波、图像锐化滤波)
频率域:低通滤波、高通滤波、同态滤波
彩色处理:真彩色处理、伪彩色处理(灰度分层法、灰度变换法、频域伪彩色)
4.2 对比度增强
线性变换:(,)[(,)]N n
g x y f x y m n M m
-=
-+-。其中功能是把函数的灰度值(,)f x y 从
范围[m,M]变为[n,N]。
非线性变换:分为对数变换和Gamma 变换。前者表达式为(,)log[(,)1]g x y c f x y =+,
其中c 为常数。后者表达式为r
f cr =,r 为CCD 图像传感器或胶片等的入射光的强度,为
常数,灰度与光强成正比,则有1
()r f g kr k c
==,k 为常数通常为1,1/r 取0.4~0.8。
我们可以用一个函数imadjust 函数来实现: J=imadjust(I);
J=imadjust(I,[low_in;high_in],[low_out;high_out]);
J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)。 其中灰度范围用归一化灰度值,范围[0,1]。整个图像的[low_in;high_in]可以用函数stretch 函数来获得。 MATLAB image toolbox5.4还提供一个手动调节的控制面板,调用函数imconstrast 。
matlab 数字图像处理
111 matlab图像命令大全[1]
图像增强
1. 直方图均衡化的 Matlab 实现
1.1 imhist 函数
功能:计算和显示图像的色彩直方图
格式:imhist(I,n)
imhist(X,map)
说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色板。用
stem(x,counts) 同样可以显示直方图。
1.2 imcontour 函数
功能:显示图像的等灰度值图
格式:imcontour(I,n),imcontour(I,v)
说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。
1.3 imadjust 函数
功能:通过直方图变换调整对比度
格式:J=imadjust(I,[low high],[bottom top],gamma)
newmap=imadjust(map,[low high],[bottom top],gamma)
说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top]
指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamma) 调整索引色图像的调色板 map 。此时若 [low high] 和
[bottom top] 都为2×3的矩阵,则分别调整 R、G、B 3个分量。
数字图像处理技术MATLAB图像处理简介.
分析图像中间一行灰度分布: >> plot(f(512,:))
200
100
0
0
200
400
600
ຫໍສະໝຸດ Baidu
800
1000
19 1200
MATLAB图像处理基础
• 图像放缩:利用函数imresize可实现图像放缩,一般形式 为: h = imresize(f, m, method); h为待放缩图像,m为倍数(小于1为缩小,大于1为放大 ),method为插值方法,取值为'nearest', 'bilinear', 或 'bicubic'。
MATLAB图像处理基础
• 四. MATLAB中的数据类型:
类型名称 描述
double uint8
uint16 uint32 int8 int16 int32 single char logical
双精度浮点类型,8字节(MATLAB数值运算基本类型) 无符号8位整数(8位数字图像所用类型)
无符号16位整数(16位数字图像所用类型) 无符号32位整数 有符号8位整数 有符号16位整数 有符号32位整数 单精度浮点类型,4字节 字符类型,2字节(Unicode编码) 逻辑类型(0或1),1字节(二值图像所用数据类型)
quality = 100
数字图像处理MATLAB图像处理PPT课件
• 二值图像 第4页/共41页
• 索引图像 第5页/共41页
• 灰度图像 第6页/共41页
• 真彩色图像 第7页/共41页
图像的读写与显示
常用函数: imread; imwrite; imshow;imagesc; colormap(可以自定义颜色映射矩阵)
例如:a=imrea d ('D:\MATLAB \wo rk \cy \wav elet \len a\len a512 .BMP'); figure, imshow(a,[]),title(‘原始图像'); 或: figure, imagesc(cc);colormap(gray);
(1)图像的局部显示
第24页/共41页
乘法运算(Multiplication) (2)改变图像的灰度级
(a) 原图
(b) 乘以1.2 图:乘法运算结果
(c) 乘以2
注意:使用乘法函数时,对uint8图像进行操作往往会发生溢出现
象,immultiply函数将溢出的数据截取为数据类型允许的最大值。为了避 免这种现象,可以考虑在进行乘法运算前将图像转换为一种数据范围更 大的图像类型。
将该位置像素的灰度值按某种方
式分配到输出图像相邻四个像素.
x1
x
象
素
y1
移 交
y
映
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB数字图像处理
1 概述
BW=dither(I)灰度转成二值图;
X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap;
[X,map]=gray2ind(I,n)灰度到索引;
[X,map]=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2;
X=graylice(I,n)灰度图到索引图,门限1/n,2/n,…,(n-1)/n,X=graylice(I,v)给定门限向量v;
BW=im2bw(I,level)灰度图I到二值图;
BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1,其余置0,level在[0,1]之间。
BW=im2bw(RGB,level)RGB到二值图;
I=ind2gray(X,map)索引图到灰度图;
RGB=ind2rgb(X,map)索引图到RGB;
I=rgb2gray(RGB)RGB到灰度图。
2 图像运算
2.1 图像的读写
MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。
读取(imread):
[1] A=imread(filename,fmt)
[2] [X,map]=imread(filename,fmt)
[3] […]=imread(filename)
[4] […]=imread(URL,…)
说明:filename是图像文件名,如果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map 为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。
写入(imwrite):
[1] R=imwrite(A,filename,fmt);
[2] R=imwrite(X,map,filename,fmt);
[3] R=imwrite(…,filename);
[4] R=imwrite(…,Param1,V al1,Param2,Val2)
说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PNG,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。
2.2 图像的显示
方法1:使用Image Viewer(图像浏览器),即运用imview函数。
同时显示多帧图像的所有帧,可用到montage 函数。
改变显示大小:imview (X,map,’IntialMagnificatition ’,’fit ’), IntialMagnificatition 默认值为100,即100%显示,设置为fit 则全屏显示。
关闭:imview close all 。
Image Viewer 还提供了三个工具:全景查看窗口(导航功能)、像素区域工具、图像信息窗口。
方法2:使用图形图像视窗,即运用imshow 函数。 调用truesize 函数来设定图像到屏幕像点的映射关系。 可以运用getimage 函数来将当前显示的图像赋值给一个变量。 调用格式:
[1] imshow(I,n);\\n 为灰度级
[2] imshow(I,[low,high]);\\指定I 的数据范围
[3] imshow(BW);\\显示二值图像BW ,0为黑色,1为白色 [4] imshow(X,map);\\索引图像 [5] imshow(RGB);
[6] imshow(…,display_option);\\显示图像的方式,选择‘notruesize ’或者‘turesize ’ [7] imshow(x,y,A,…);\\x,y 建立非默认的空间坐标系统 [8] imshow filename;
[9] h=imshow(…)\\h 表示被显示图像的句柄
2.3 图像的代数运算
[1] 相加(imadd ): Z=imadd(X,Y)\\存为8位;
Z=imadd(X,Y,’uint 16’)\\存为16位。 [2] 求补(imcomplement ): IM2=imcomplement(IM1)。 [3] 减法(imsubtract 或者imabsdiff ): Z=imsubtract(X,Y)\\差值结果小于0的赋值为0; Z=imabsdiff(X,Y)\\ 差值结果取绝对值。 [4] 乘法(immultiply ): Z=immultiply(X,Y)。 [5] 除法(imdivide ): Z=imdivide(X,Y)。
2.4 点运算
灰度变换函数GST :B(x,y)=f[A(x,y)]。其中有:
[1]线性点运算B ()f A A αβ==+; [2]非线性点运算; [3]直方图修正。
2.5 图像的集合运算
改变大小imresize :Y=imresize(X,M,method),其中M 为放大的倍数,method 有如下几
种插值方式nearest,bilinear,bicubic。也可以规定输出图像大小,[heng,zong]。
图像旋转imrotate:Y=imrotate(X,angle,method,’crop’),angle表示逆时针旋转,method 同imresize的用法,crop表示将旋转以后的图像取与原图像大小相同的中心部分取出。
比例缩放imresize:同改变大小。
空间变换imtransform:B=imtransform(A,TFORM,param1,val1,param2,val2),其中TFORM为makeform或者cp2tform产生的结果。如TFORM=makeform(transformtype,…),
MATLAB中还提供了很多空间变换的工具,如:fliptform,fgormfwd,tforminv,findounds,makereample,tformarray,imtransform等。
2.6 图像的领域和块操作
领域操作分为滑动领域和分离领域两类。滑动领域函数nlfilter,用法如下:
[1] B=nlfilter(A,[m n],fun)\\[m n]表示滑动领域m*n,fun为图像领域上的处理函数;
[2] B=nlfilter(A,[m n],fun,P1,P2,…)\\可以传递参数P1,P2,…给函数fun;
[3] B=nlfilter(A,’indexed’)\\把图像作为索引色图像处理,double填补1,uint8补0。
而且fun可以是一个函数句柄或是一个内联函数,返回类型由fun决定。但是nlfilter 处理时可能需要很长时间,这时可是考虑使用快速处理函数colfilt。用法类似,多一个参数bldck_tpye,表示块的移动方式,有distinc t和sliding两个取值,前者表示分离块操作,后者表示滑动块操作。而且有[mblock nblock]表示图像块的大小。
分离块操作是将图像划分为大小相同的矩形区域,不同图像块在图像中无重叠排列,其顺序从左上角开始,不足的地方可以在右下角补0。函数为blkproe,调用格式和nlfilter类似。
2.7 几何畸形校正和图像配准
用到函数imtransform。
3 MATLAB二维与三维图形绘制及动画
3.1 基本绘图命令