MATLAB图象处理函数

合集下载

matlab模糊函数代码

matlab模糊函数代码

matlab模糊函数代码在数学和图像处理领域中,模糊函数是一种常用的工具,用于对图像进行模糊处理以达到一定的效果。

Matlab提供了一些内置函数来实现图像的模糊处理,本文将介绍如何使用Matlab编写模糊函数代码。

Matlab中有多种不同类型的模糊函数,例如高斯模糊、均值模糊和运动模糊等。

下面将逐一介绍这些模糊函数代码的实现方式。

1. 高斯模糊:高斯模糊是最常用的模糊算法之一,它通过卷积图像与一个高斯核来实现。

以下是Matlab中实现高斯模糊的代码示例:```matlabfunction blurredImage = gaussianBlur(image, sigma)kernelSize = 2 * ceil(3 * sigma) + 1; % 根据sigma计算高斯核大小kernel = fspecial('gaussian', [kernelSize kernelSize], sigma); % 生成高斯核blurredImage = imfilter(image, kernel, 'conv'); % 对图像进行卷积操作end```2. 均值模糊:均值模糊是一种简单但常用的模糊算法,它通过计算邻域像素的平均值来实现。

以下是Matlab中实现均值模糊的代码示例:```matlabfunction blurredImage = meanBlur(image, kernelSize)kernel = ones(kernelSize) / (kernelSize^2); % 生成均值核blurredImage = imfilter(image, kernel, 'conv'); % 对图像进行卷积操作end```3. 运动模糊:运动模糊是一种模糊算法,它通过模拟相机快门打开时的移动效果来实现。

以下是Matlab中实现运动模糊的代码示例:```matlabfunction blurredImage = motionBlur(image, angle, distance)PSF = fspecial('motion', distance, angle); % 生成运动模糊核blurredImage = imfilter(image, PSF, 'conv'); % 对图像进行卷积操作end```以上是几种常见的模糊函数的Matlab代码实现。

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法概述:图像处理是数字信号处理的一个重要分支,也是计算机视觉领域的核心内容之一。

随着计算机技术的不断发展,利用Matlab进行图像处理的方法变得越来越重要。

本文将介绍一些常用的Matlab图像处理方法,包括图像的读取与显示、图像的预处理、图像的滤波处理、基本的图像增强方法以及图像的分割与检测等。

一、图像的读取与显示在Matlab中,可以使用imread函数直接读取图像。

通过指定图像的路径,我们可以将图像读取为一个矩阵,并且可以选择性地将其转换为灰度图像或彩色图像。

对于灰度图像,可以使用imshow函数将其显示出来,也可以使用imwrite函数将其保存为指定格式的图像文件。

对于彩色图像,可以使用imshow函数直接显示,也可以使用imwrite函数保存为指定格式的图像文件。

此外,还可以使用impixel函数获取图像中指定像素点的RGB值。

二、图像的预处理图像的预处理是指在进一步处理之前对图像进行调整和修复以消除图像中的噪声和不良的影响。

常用的图像预处理方法包括图像的平滑处理、图像增强和图像修复等。

1. 图像平滑处理:常用的图像平滑方法有均值滤波、中值滤波和高斯滤波等。

其中,均值滤波将每个像素点的值替换为其周围像素点的平均值,中值滤波将每个像素点的值替换为其周围像素点的中值,高斯滤波则通过加权平均的方式平滑图像。

2. 图像增强:图像增强是指通过一些方法提高图像的质量和信息内容。

常用的图像增强方法包括直方图均衡化、对比度拉伸和锐化等。

直方图均衡化通过调整图像的灰度分布,以提高图像的对比度和细节。

对比度拉伸是通过将图像的像素值线性拉伸到整个灰度范围内,以增强图像的对比度。

锐化则是通过增强图像的边缘和细节,使图像更加清晰。

三、图像的滤波处理图像的滤波处理是指通过对图像进行一系列滤波操作,来提取图像中的特征和信息。

常用的图像滤波方法包括模板滤波、频域滤波和小波变换等。

1. 模板滤波:模板滤波是基于局部像素邻域的滤波方法,通过定义一个滤波模板,将其与图像进行卷积操作,从而实现图像的滤波。

matlab image函数用法

matlab image函数用法

matlab image函数用法MATLAB Image函数用法Image函数是Matlab的一个基本的图像处理函数,可以用来读取、显示和储存各种格式的图像,并且可以进行基本的图像矩阵变换,是Matlab中常用的图像处理方法。

以下将详细介绍如何使用Image函数:第一步:载入图片如果要对某个图片进行处理,首先需要将其载入Matlab环境中,可以使用Image函数来实现。

可以通过下面的代码来完成:A = imread('path_to_image');其中path_to_image指定了图片的位置,读取后会自动填充到变量A 中,这样就可以用A来进行后续的处理。

第二步:显示载入的图片载入完图片以后,我们可以使用下面的命令来显示该图片:imshow(A);这步骤完成后,就可以在Matlab环境中看到载入的图片。

第三步:图像矩阵变换如果要对载入的图片进行像素矩阵的变换,比如反转、镜像等等,可以使用以下代码来实现:B = imrotate(A, 90); //旋转90度C = flipud(A); //上下翻转D = fliplr(A); //左右翻转这些操作会对载入的图片进行像素矩阵变换,变换后的图像就会储存到相应变量中,例如旋转后的图像就会储存在B中,上下翻转后的图像就会储存在C中,左右翻转后的图像就会储存在D中,之后可以使用imshow函数来查看这些变换后的图片。

第四步:存储变换后的图片如果想对变换后的图片进行存储,可以使用Image函数中提供的imwrite函数来实现,可以使用如下代码:imwrite(B,'rotated.jpg'); //保存旋转后的图片imwrite(C,'Vertical_flip.jpg'); //保存上下翻转后的图片imwrite(D,'Horizontal_flip.jpg'); //保存左右翻转后的图片其中,括号内的参数指定图片的存储路径和名称,执行完上述代码,就可以在指定位置看到三张变换后的图片。

matlab imregionalmax原理

matlab imregionalmax原理

Matlab imregionalmax()函数是图像处理工具箱中的一个重要函数,用于在图像中找到局部最大值点。

本篇文章将详细介绍imregionalmax函数的原理和使用方法。

1. imregionalmax函数的原理imregionalmax函数用于在输入的图像中找到局部最大值点。

其原理主要涉及到以下几个步骤:- 对图像进行局部极大值筛选imregionalmax函数首先对输入的图像进行局部极大值的筛选。

这意味着它会检查每一个像素周围的邻域,找到一个像素值最大的点作为局部极大值点。

- 局部极大值点的连接性分析接下来,imregionalmax函数会对已经找到的局部极大值点进行连接性分析。

这个步骤是为了排除一些非真实的局部最大值点,比如一些由噪音或干扰引起的局部极大值点。

- 输出局部最大值点imregionalmax函数会输出被筛选出的真实的局部最大值点的位置信息,以便后续的处理和分析。

2. imregionalmax函数的调用方法imregionalmax函数的调用方法十分简单,其基本语法如下:```matlabB = imregionalmax(A)```其中A为输入的图像,B为输出的逻辑图像,表示图像A中的局部最大值点的位置。

imregionalmax函数还支持一些参数的设置,比如通过设定邻域大小和连接性等参数,可以对局部最大值点的查找进行一定的控制。

3. imregionalmax函数的应用场景imregionalmax函数在图像处理领域有着广泛的应用,比如在目标检测、边缘提取、特征点提取等方面都有着重要的作用。

其主要应用场景包括:- 物体检测在目标检测中,imregionalmax函数可以用来对目标物体的局部最大值点进行提取,从而实现对目标物体的定位和识别。

- 边缘检测对于边缘检测而言,imregionalmax函数可以用来对图像中的边缘进行提取,从而实现对图像的分割和特征提取。

- 特征点提取在图像特征点提取方面,imregionalmax函数可以用来对图像中的关键点进行提取,从而实现对图像的特征描述和匹配。

MATLAB图像处理函数大全

MATLAB图像处理函数大全

Matlab数字数字图像处理函数汇总:1、数字数字图像的变换①fft2:fft2函数用于数字数字图像的二维傅立叶变换,如:i=imread('104_8.tif'); j=fft2(i);②ifft2::ifft2函数用于数字数字图像的二维傅立叶反变换,如:i=imread('104_8.tif');j=fft2(i);k=ifft2(j);2、模拟噪声生成函数和预定义滤波器①imnoise:用于对数字数字图像生成模拟噪声,如:i=imread('104_8.tif');j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声②fspecial:用于产生预定义滤波器,如:h=fspecial('sobel');%sobel水平边缘增强滤波器h=fspecial('gaussian');%高斯低通滤波器h=fspecial('laplacian');%拉普拉斯滤波器h=fspecial('log');%高斯拉普拉斯(LoG)滤波器h=fspecial('average');%均值滤波器2、数字数字图像的增强①直方图:imhist函数用于数字数字图像的直方图显示,如:i=imread('104_8.tif');imhist(i);②直方图均化:histeq函数用于数字数字图像的直方图均化,如:i=imread('104_8.tif');j=histeq(i);③对比度调整:imadjust函数用于数字数字图像的对比度调整,如:i=imread('104_8.tif');j=imadjust(i,[0.3,0.7],[]);④对数变换:log函数用于数字数字图像的对数变换,如:i=imread('104_8.tif');j=double(i);k=log(j);⑤基于卷积的数字数字图像滤波函数:filter2函数用于数字数字图像滤波,如:i=imread('104_8.tif');h=[1,2,1;0,0,0;-1,-2,-1];j=filter2(h,i);⑥线性滤波:利用二维卷积conv2滤波, 如:i=imread('104_8.tif');h=[1,1,1;1,1,1;1,1,1];h=h/9;j=conv2(i,h);⑦中值滤波:medfilt2函数用于数字数字图像的中值滤波,如:i=imread('104_8.tif');j=medfilt2(i);⑧锐化(1)利用Sobel算子锐化数字数字图像, 如:i=imread('104_8.tif');h=[1,2,1;0,0,0;-1,-2,-1];%Sobel算子j=filter2(h,i);(2)利用拉氏算子锐化数字数字图像, 如:i=imread('104_8.tif');j=double(i);h=[0,1,0;1,-4,0;0,1,0];%拉氏算子k=conv2(j,h,'same');m=j-k;3、数字数字图像边缘检测①sobel算子如:i=imread('104_8.tif');如有帮助,欢迎支持。

MATLAB 图像处理命令使用

MATLAB 图像处理命令使用

MATLAB 图像处理命令使用1.MATLAB中图像处理的一些简单函数A、imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。

例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size 函数用来显示数组的维数,了解数据的特点。

B=size(a) 返回数组a 的维数。

B、imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

C、imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

2.MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

(1)二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。

如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。

Matlab中图像处理常用函数的用法

Matlab中图像处理常用函数的用法

Matlab中常见函数的用法1 size()函数1)s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。

2)[r,c]=size(A),当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。

3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1、2或者3为n赋值,则 size将返回矩阵的行数或列数。

其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。

如果A为一个二维数组,则可以将其看成一个第三维为1的数组,即size(A,3)的返回值为1。

2 padarray()函数B = padarray(A,padsize,padval,direction)A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[r c]来表示。

padval和direction分别表示填充方法和方向。

它们的具体值和描述如下:Padval选项:'symmetric'表示图像大小通过围绕边界进行镜像反射来扩展;'replicate'表示图像大小通过复制外边界中的值来扩展;'circular'图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。

Direction选项:'pre'表示在每一维的第一个元素前填充;'post'表示在每一维的最后一个元素后填充;'both'表示在每一维的第一个元素前和最后一个元素后填充,此项为默认值。

若参量中不包括direction,则默认值为'both';若参量中不包含padval,则默认用0来填充。

若参量中不包括任何参数,则默认填充为零且方向为'both'。

MATLAB图像处理函数大全

MATLAB图像处理函数大全

Matlab图像处理函数大全(一)图像增强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个分量。

1.4 histeq 函数功能:直方图均衡化格式:J=histeq(I,hgram)J=histeq(I,n)[J,T]=histeq(I,...)newmap=histeq(X,map,hgram)newmap=histeq(X,map)[new,T]=histeq(X,...)说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象I 的直方图变换成用户指定的向量hgram 。

matlab图像处理函数大全

matlab图像处理函数大全

matlab图像处理函数大全Matlab是一种强大的科学计算软件,广泛应用于各个领域,包括图像处理。

在Matlab中,有许多内置的图像处理函数,可以帮助我们实现各种图像处理任务。

本文将介绍一些常用的Matlab图像处理函数,帮助您更好地理解和运用这些函数。

1. imread函数imread函数用于读取图像文件,并将其存储为Matlab的图像矩阵。

它可以读取多种图像格式,如JPEG、PNG、BMP等。

例如,可以使用以下代码读取名为"image.jpg"的图像文件:```matlabimage = imread('image.jpg');```2. imshow函数imshow函数用于显示图像。

它可以接受一个图像矩阵作为输入,并将其显示在Matlab的图像窗口中。

例如,可以使用以下代码显示之前读取的图像:```matlabimshow(image);```3. imresize函数imresize函数用于调整图像的大小。

它可以接受一个图像矩阵和目标大小作为输入,并返回调整大小后的图像矩阵。

例如,可以使用以下代码将图像调整为200x200的大小:```matlabresized_image = imresize(image, [200, 200]);```4. rgb2gray函数rgb2gray函数用于将彩色图像转换为灰度图像。

它可以接受一个彩色图像矩阵作为输入,并返回一个灰度图像矩阵。

例如,可以使用以下代码将彩色图像转换为灰度图像:```matlabgray_image = rgb2gray(image);```5. imadjust函数imadjust函数用于调整图像的对比度和亮度。

它可以接受一个灰度图像矩阵和目标对比度和亮度范围作为输入,并返回调整后的图像矩阵。

例如,可以使用以下代码增加图像的对比度和亮度:```matlabadjusted_image = imadjust(gray_image, [0.2, 0.8], [0, 1]);```6. imfilter函数imfilter函数用于对图像进行滤波操作。

matlab中images函数

matlab中images函数

1. 图像处理在科学研究和工程领域中具有重要作用,而MATLAB作为一种强大的科学计算软件,拥有丰富的图像处理功能。

其中,images 函数是MATLAB中用于图像处理的重要函数之一。

2. images函数是MATLAB中一个用于创建图像的函数。

它可以在MATLAB中生成各种类型和大小的图像,包括灰度图像、彩色图像以及各种特定形状和大小的图像。

images函数的基本语法如下所示: ```matlabimg = images('PropertyName', 'PropertyValue', ...)```其中,img是生成的图像对象,'PropertyName'和'PropertyValue'是用于指定图像属性的参数。

3. images函数可以用来创建各种类型的图像,包括灰度图像和彩色图像。

对于灰度图像,可以通过指定图像的大小和灰度值来创建。

下面的代码创建了一个大小为256x256的灰度图像,灰度值为128:```matlabimg = images('CData', ones(256,256)*128);```对于彩色图像,可以通过指定图像的大小和RGB值来创建。

下面的代码创建了一个大小为256x256的彩色图像,颜色为红色:```matlabimg = images('CData', cat(3, ones(256,256), zeros(256,256),zeros(256,256)));```4. images函数还可以用来创建特定形状和大小的图像。

通过指定图像的大小和形状参数,可以轻松地创建各种形状的图像,如矩形、圆形和椭圆形。

下面的代码创建了一个大小为256x256的红色矩形图像: ```matlabimg = images('CData', cat(3, ones(256,256), zeros(256,256), zeros(256,256)), 'XData', [0 10], 'YData', [0 10]);```5. images函数还可以用来处理图像的显示和调整。

matlabimread,imshow,subplot,figure,imwrite的用法

matlabimread,imshow,subplot,figure,imwrite的用法

matlabimread,imshow,subplot,figure,imwrite的用法1. imread:这个函数用于从文件中读取图像。

它的语法如下:```A = imread(filename)```其中,`filename`是字符串类型的参数,表示要读取的图像文件名。

`A`是一个矩阵,表示读取到的图像。

2. imshow:imshow函数用于显示图像。

它的语法如下:```imshow(A)```其中,`A`是一个矩阵,表示要显示的图像。

3. subplot:subplot函数用于在一个图形窗口中创建一个均匀的子图网格,并指定当前操作的子图。

它的语法如下:```subplot(m,n,p)```其中,`m`表示子图网格的行数,`n`表示子图网格的列数,`p`表示当前要操作的子图的位置。

4. figure:figure函数用于创建一个新的图形窗口。

它的语法如下:```figure```这个函数调用时不带参数,只创建一个新的图形窗口。

5. imwrite:imwrite函数用于将图像保存到一个文件中。

它的语法如下:```imwrite(A,filename)```其中,`A`是一个矩阵,表示要保存的图像,`filename`是保存图像的文件名。

这些函数在MATLAB中经常被用于图像处理和分析领域。

在具体使用时,我们可以结合其他函数一起使用,来完成一些复杂的图像处理任务。

例如,我们可以使用imread读取一张图像,然后使用imshow显示该图像:```A = imread('image.jpg');imshow(A);```我们也可以创建一个带有多个子图的图形窗口,并在不同的子图中显示不同的图像:```figure;subplot(2,2,1);imshow(A);subplot(2,2,2);imshow(B);subplot(2,2,3);imshow(C);subplot(2,2,4);imshow(D);```最后,我们还可以对处理后的图像使用imwrite保存到文件中:```C = someImageProcessingFunction(A);imwrite(C,'processed_image.jpg');```这些函数都是MATLAB中图像处理和分析的基本操作,通过它们的灵活使用,可以实现各种不同的图像处理任务。

Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全一、通用函数:colorbar显示彩色条语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \colorbar(...,'peer',axes_handle)getimage 从坐标轴取得图像数据语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimageimshow显示图像语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...)montage在矩形框中同时显示多幅图像语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...)i mmovie创建多帧索引图的电影动画语法:mov=immovie(X,map) \ mov=immovie(RGB)subimage在一副图中显示多个图像语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \subimage(x,y,...) \ subimage(...)truesize调整图像显示尺寸语法:truesize(fig,[mrows mcols]) \ truesize(fig)warp将图像显示到纹理映射表面语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...)zoom 缩放图像语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\zoom(factor) \ zoom(fig,option)二、图像文件I/O函数命令imfinfo返回图形图像文件信息语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename)imread 从图像文件中读取(载入)图像语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \ [...]=imread(filename) \ [...]=imread(URL,...) \ [...]=imread(...,idx) (CUR,ICO,and TIFF only) \[...]=imread(...,'frames',idx) (GIF only) \ [...]=imread(...,ref) (HDF only) \[...]=imread(...,'BackgroundColor',BG) (PNG only) \ [A,map,alpha] =imread(...) (ICO,CUR,PNG only)imwrite把图像写入(保存)图像文件中语法:imwrite(A,filename,fmt) \ imwrite(X,map,filename,fmt) \ imwrite(...,filename) \ imwite(...,Param1,Val1,Param2,Val2...)imcrop剪切图像语法:I2=imcrop(I) \ X2=imcrop(X,map) \ RGB2=imcrop(RGB) \ I2=imcrop(I,rect) \X2=imcrop(RGB,rect) \ [...]=imcrop(x,y,...) \ [A,rect]=imcrop(...) \ [x,y,A,rect]=imcrop(...)imresize 改变图像大小语法:B=imresize(A,m,method)imrotate 旋转图像语法:B=imrotate(A,angle,method) \ B=imrotate(A,angle,method,'crop')三、像素和统计处理函数corr2 计算两个矩形的二维相关系数语法:r=corr2(A,B)imcontour创建图像数据的轮廓图语法:imcontour(I,n) \ imcontour(I,v) \ imcontour(x,y,...) \ imcontour(...,LineSpec) \ [C,h] =imcontour(...)imfeature 计算图像区域的特征尺寸语法:stats=imfeature(L,measurements) \ stats=imfeature(L,measurements,n)imbist 显示图像数据的柱状图impixel 确定像素颜色值语法:P=impixel(I) \ P=impixel(X,map) \ P=impixel(RGB) \ P=impixel(I,c,r) \P=impixel(X,map,c,r) \ P=impixel(RGB,c,r) \ [c,r,P]=impixel(...) \ P=impixel(x,y,I,xi,yi) \ P=impixel(x,y,RGB,xi,yi) \ P=impixel(x,y,X,map,xi,yi) \[xi,yi,P]=impixel(x,y,...)improfile沿线段计算剖面图的像素值语法:c=improfile \ c=improfile(n) \ c=improfile(I,xi,yi) \ c=improfile(I,xi,yi,n)\ [cx,cy,c]=improfile(...) \ [cx,cy,c,xi,yi]=improfile(...) \ [...]=improfile(x,y,I,xi,yi)\ [...]=improfile(x,y,I,xi,yi,n) \ [...]=improfile(...,method)mean2计算矩阵元素的平均值语法:B=mean2(A)pixval显示图像像素信息语法:pixval onstd2 计算矩阵元素的标准偏移语法:b=std2(A)四、图像分析函数:edge 图像边缘检测语法:BW=edge(I,'sobel') \ BW=edge(I,'sobel',thresh) \ BW=edge(I,'sobel',thresh,direction) \ [BW,thresh]=edge(I,'sobel',...) \ BW=edge(I,'prewitt') \ BW=edge(I,'prewitt',thresh) \BW=edge(I,'prewitt',thresh,direction) \[BW,thresh]=edge(I,'prewitt',...) \ BW=edge(I,'roberts') \ BW=edge(I,'roberts',thresh)\ [BW,thresh]=edge(I,'roberts',...) \ BW=edge(I,'log') \ BW=edge(I,'log',thresh) \BW=edge(I,'log',thresh,sigma) \ [BW,threshold]=edge(I,'log',...) \BW=edge(I,'zerocross',thresh,h) \ [BW,thresh]=edge(I,'zerocross',...) \BW=edge(I,'canny') \ BW=edge(I,'canny',thresh) \ BW=edge(I,'canny',thresh,sigma) \ [BW,threshold]=edge(I,'canny',...)qtgetblk 获取四叉树分解的块值语法:[vals,r,c]=qtgetblk(I,S,dim) \ [vals,idx]=qtgetblk(I,S,dim)qtsetblk 设置四叉树分解中的块值语法:J=qtsetblk(I,S,dim,vals)五、图像增强函数histeq 用柱状图均等化增强对比语法:J=histeq(I,hgram) \ J=histeq(I,n) \ [J,T]=histeq(I,...) \ newmap=histeq(X,map,hgram) \ newmap=histeq(X,map)imadjust 调整图像灰度值或颜色映像表语法:J=imadjust(I,[low_in ,high_in]),[low_out ,high_out],gamma) \newmap=imadjust(map,[low_in ,high_in]),[low_out ,high_out],gamma) \RGB2=imadjust(RGB1,...)imnoise 增强图像的渲染效果语法:J=imnoise(I,type) \ J=imnoise(I,type,parameters)medfilt2 进行二维中值过滤语法:B=medfilt2(A,[m n]) \ B=medfilt2(A) \ B=medfilt2(A,'indexed',...)ordfilt2 进行二维统计顺序过滤语法:B=ordfilt2(A,order,domain) \ B=ordfilt2(A,order,domain,S) \ B=ordfilt2(...,padopt)wiener2进行二维适应性去噪过滤处理语法:J=wiener2(I,[m n],noise) \ [J,noise]=wiener2(I,[m n])六、线性滤波函数conv2 进行二维卷积操作语法:C=conv2(A,B) \ C=conv2(hcol,hrow,A) \ C=conv2(...,'shape')convmtx2 计算二维卷积矩阵语法:T=convmtx2(H,m,n) \ T=convmtx2(H,[m n])convn 计算n维卷积语法:C=convn(A,B) \ C=convn(A,B,'shape')filter2进行二维线性过滤操作语法:Y=filter2(h,X) \ Y=filter2(h,X,shape)fspecial创建预定义过滤器语法:h=fspecial(type) \ h=fspecial(type,parameters)七、线性二维滤波设计函数freqspace 确定二维频率响应的频率空间语法:[f1,f2]=freqspace(n) \ [f1,f2]=freqspace([m n]) \ [x1 ,y1]=freqspace(...,'meshgrid') \ f=freqspace(N) \ f=freqspace(N,'whole')freqz2 计算二维频率响应语法:[H,f1,f2]=freqz2(h,n1,n2) \ [H,fi,f2]]=freqz2(h,[n2,n1]) \ [H,fi,f2]]=freqz2(h,f1,f2]) \ [H,fi,f2]]=freqz2(h) \[...]=freqz2(h,...,[dx dy]) \ [...]=freqz2(h,...,dx) \ freqz2(...)fsamp2 用频率采样法设计二维FIR过滤器语法:h=fsamp2(Hd) \ h=fsamp2(f1,f2,Hd,[m n])ftrans2 通过频率转换设计二维FIR过滤器语法:h=ftrans2(b,t) \ h=ftrans2(b)fwind1 用一维窗口方法设计二维FIR过滤器语法:h=fwind1(Hd,win) \ h=fwind1(Hd,win1,win2) \ h=fwind1(f1,f2,Hd,...)fwind2 用二维窗口方法设计二维FIR过滤器语法:h=fwind2(Hd,win) \ h=fwind2(f1,f2,Hd,win)八、图像变换函数dct2进行二维离散余弦变换(反余弦变换用idct2)语法:B=dct2(A) \ B=dct2(A,m.n) \ B=dct2(A,[m n])dctmtx 计算离散余弦傅立叶变换语法:D=dctmtx(n)fft2 进行二维快速傅立叶变换(反变换用ifft2)语法:Y=fft2(X) \ Y=fft2(X,m,n)fftn 进行n维快速傅立叶变换(反变换用ifftn)语法:Y=ffn(X) \ Y=fftn(X,siz)fftshift 快速傅立叶变换的DC组件移到光谱中心语法:Y=fftshift(X) \ Y=fftshift(X,dim)iradon 进行反radon变换语法:I=iradon(P,theta) \ I=iradon(P,theta,interp,filter,d,n) \ [I,h]=iradon(...)phantom产生一个头部幻影图像语法:P=phantom(def,n) \ P=phantom(E,n) \ [P,E]=phantom(...)r adon 计算radon变换语法:R=radon(I,theta) \ [R,xp]=radon(...)九、边沿和块处理函数bestblk 确定进行块操作的块大小语法:siz=bestblk([m n],k) \ [mb,nb]=bestblk([m n],k)blkproc实现图像的显示块操作语法:B=blkproc(A,[m n]),fun) \ B=blkproc(A,[m n],fun,P1,P2,...) \ B=blkproc(A,[m n],[mborder nborder],fun,...)col2im 将矩阵的列重新组织到块中语法:A=col2im(B,[m n],[mm nn],block_type) \ A=col2im(B,[m n],[mm nn])colfilt 利用列相关函数进行边沿操作语法:B=colfilt(A,[m n],block_type,fun) \ B=colfilt(A,[m n],block_type,fun,P1,P2,...) \B=colfilt(A,[m n],[mblock nblock],...) \ B=colfilt(A,'indexed',...)im2col 重调图像块为列语法:B=im2col(A,[m n],block_type) \ B=im2col(A,[m n]) \ B=im2col(A,'indexed',...)nlfilter进行边沿操作语法:B=nlfilter(A,[m n],fun) \ B=nlfilter(A,[m n],fun,P1,P2,...) \ B=nlfilter(A,'indexed',...)十、二进制图像操作函数applylut 在二进制图像中利用lookup表进行行边沿操作语法:A=applylut(BW,LUT)bwarea 计算二进制图像对象的面积语法:total=bwarea(BW)bweuler 计算二进制图像的欧拉数语法:eul=bweuler(BW)bwfill 填充二进制图像的背景色语法:BW2=bwfill(BW1,c,r,n) \ BW2=bwfill(BW1,n) \ [BW2,idx]=bwfill(...) \BW2=bwfill(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwfill(...)\ [BW2,idx]=bwfill(BW1,'holes',n)bwlabel标注二进制图像中已连接的部分语法:L=bwlabel(BW,n) \ [L,num]=bwlabel(BW,n)bwmorph提取二进制图像的轮廓语法:BW2=bwmorph(BW1,operation) \ BW2=bwmorph(BW1,operation,n)bwperim 计算二进制图像中对象的周长语法:BW2=bwperim(BW1) \ BW2=bwperim(BW1,CONN)bwselect 在二进制图像中选择对象语法:BW2=bwselect(BW1,c,r,n) \ BW2=bwselect(BW1,n) \ [BW2,idx]=bwselect(...) \ BW2=bwselect(x,y,BW1,xi,yi,n) \ [x,y,BW2,idx,xi,yi]=bwselect(...)dilate 放大二进制图像语法:BW2=dilate(BW1,SE) \ BW2=dilate(BW1,SE,alg) \ BW2=dilate(BW1,SE,...,n)erode弱化二进制图像的边界语法:BW2=erode(BW1,SE) \BW2=erode(BW1,SE,alg) \ BW2=erode(BW1,SE,...,n)makelut 创建一个用于applylut函数的lookup表语法:lut=makelut(fun,n) \ lut=makelut(fun,n,P1,P2,...)十一、区域处理函数roicolor 选择感兴趣的颜色区语法:BW=roicolor(A,low,high) \ BW=rocicolor(A,v)roifill 在图像的任意区域中进行平滑插补语法:J=roifill(I,c,r) \ J=roifill(I) \ J=roifill(I,BW) \ [J,BW]=roifill(...) \ J=roifill(x,y,I,xi,yi) \ [x,y,J,BW,xi,yi]=roifill(...)roifilt2 过滤敏感区域语法:J=roifilt2(h,I,BW) \ J=roifilt2(I,BW,fun) \ J=roifilt2(I,BW,fun,P1,P2,...)roipoly 选择一个敏感的多边形区域语法:BW=roipoly(I,c,r) \ BW=roipoly(I) \ BW=roipoly(x,y,I,xi,yi) \ [BW,xi,yi]=roipoly(...) \ [x,y,BW,xi,yi]=roipoly(...)十二、颜色映像处理函数brighten增加或降低颜色映像表的亮度语法:brighten(beta) \ brighten(h,beta) \ newmap=brighten(beta) \newmap=brighten(cmap,beta)cmpermute 调整颜色映像表中的颜色语法:[Y,newmap]=cmpermute(X,map) \ [Y,newmap]=cmpermute(X,map,index)cmunigue 查找颜色映像表中特定的颜色及相应的图像语法:[Y,newmap]=cmunigue(X,map) \ [Y,newmap]=cmunigue(RGB) \[Y,newmap]=cmunique(I)imapprox 对索引图像进行近似处理语法:[Y,newmap]=imapprox(X,map,n) \ [Y,newmap]=imapprox(X,map,tol) \ Y=imapprox(X,map,newmap) \[...]=imapprox(...,dither_option)rgbplot 划分颜色映像表语法:rgbplot(cmap)十三、颜色空间转换函数hsv2rgb转换HSV值为RGB颜色空间:M=hsv2rgb(H)ntsc2rgb 转换NTSC值为RGB颜色空间:rgbmap=ntsc2rgb(yiqmap) \RGB=ntsc2rgb(YIQ)rgb2hsv 转换RGB值为HSV颜色空间:cmap=rgb2hsv(M)rgb2ntsc转换RGB值为NTSC颜色空间:yiqmap=rgb2ntsc(rgbmap) \YIQ=rgb2ntsc(RGB)rgb2ycbcr 转换RGB值为YCbCr颜色空间:ycbcrmap=rgb2ycbcr(rgbmap) \ YCBCR=rgb2ycbcr(RGB)ycbcr2rgb 转化YCbCr值为RGB颜色空间:rgbmap=ycbcr2rgb(ycbcrmap) \ RGB=ycbcr2rgb(YCBCR)十四、图像类型和类型转换函数dither 通过抖动增加外观颜色分辨率转换图像语法:X=dither(RGB,map) \ BW=dither(I)gray2ind转换灰度图像为索引图像语法:[X,map]=gray2ind(I,n) \ [X,map]=gray2ind(BW,n)grayslice 从灰度图像为索引图像语法:X=grayslice(I,n) \ X=grayslice(I,v)im2bw转换图像为二进制图像语法:BW=im2bw(I,level) \ BW=im2bw(X,map,level) \ BW=im2bw(RGB,level) im2double 转换图像矩阵为双精度型语法:I2=im2double(I1) \ RGB2=im2double(RGB1) \ I=im2double(BW) \X2=im2double(X1,'indexed')double 转换数据为双精度型语法:double(X)unit8 、unit16转换数据为8位、16位无符号整型:i=unit8(x) \ i=unit16(x) im2unit8转换图像阵列为8位无符号整型语法:I2=im2unit8(I1) \ RGB2=im2unit8(RGB1) \ I=im2unit8(BW) \X2=im2unit8(X1,'indexed')im2unit16 转换图像阵列为16位无符号整型语法:I2=im2unit16(I1) \ RGB2=im2unit16(RGB1) \ I=im2unit16(BW) \X2=im2unit16(X1,'indexed')ind2gray 把检索图像转化为灰度图像语法:I=ind2gray(X,map)ind2rgb 转化索引图像为RGB真彩图像语法:RGB=ind2rgb(X,map)isbw 判断是否为二进制图像语法:flag=isbw(A)isgray判断是否为灰度图像语法:flag=isgray(A)isind 判断是否为索引图像语法:flag=isind(A)isrgb 判断是否为RGB真彩色图像语法:flag=isrgb(A)mat2gray 转换矩阵为灰度图像语法:I=mat2gray(A,[amin amax]) \ I=mat2gray(A)rgb2gray转换RGB图像或颜色映像表为灰度图像语法:I=rgb2gray(RGB) \ newmap=rgb2gray(map)rgb2ind 转换RGB图像为索引图像语法:[X,map]=rgb2ind(RGB,tol) \ [X,map]=rgb2ind(RGB,n) \ X=rgb2ind(RGB,map) \ [...]=rgb2ind(...,dither_option)十五、新增图像处理工具箱函数adapthisteq 限制对比度直方图均衡化: J=adapthisteq(I) \J=adapthisteq(I,param1,val1,param2,val2...)applycform 用于颜色空间变换out=applyform(I,C)bwboundaries描绘二进制图像边界语法: B=bwboundaries(BW) \ B=bwboundaries(BW,CONN) \B=bwboundaries(BW,CONN,options) [BW,CONN,options] \ [BL]=bwboundaries(...) \ [BLNA]=bwboundaries()bwtraceboundary 描述二进制图像中的物体B=bwtraceboundary(BW,P,fstep) \ B=bwtraceboundary(BW,P,fstep,CONN) \B=bwtraceboundary(...N,dir)decorrstrech 对多通道图像进行去相关处理语法:S=decorrstretch(I) \ S=decorrstretch(I,TOL)dicomdict 获取或读取DICOM文件语法:dicomdict('set',dictionary) \ dictionary=dicomdict('get')getline用鼠标选择ployline语法:[x,y]=getline(fig) \ [x,y]=getline(ax) \ [x,y]=getline \ [x,y]=getline(...,'closed') getpts用鼠标选择像素点语法:[x,y]=getpts(fig) \ [x,y]=getpts(ax) \ [x,y]=getptsgetrect 用鼠标选择矩阵语法:rect=getrect(fig) \ rect=getrect(ax) \ rect=getrect(fig)iccread 读取ICC剖面语法:P=iccread(filename)im2java2d 将图像转换为Java缓冲图像语法:jimage=im2java2d(I) \ jimage=im2java2d(X,MAP)imview 在图像与蓝旗中显示图像语法:imview(I) \ imview(RGB) \ imview(X,map) \imview(I,range) \ imview(filename) \ imview(....'InitialMagnification',initial_mag) \ h=imview(...) \ imview close allippl 检查IPPL的存在语法:TF=ippl \ [TF B]=ippliptdemos显示图像处理工具箱中的索引图像lab2double、lab2unit16、lab2unit8 将L*a*b数据分别转换为双精度、16位数据、8位数据makecform 创造一个色彩转换结构poly2mask 把多边形区域转换成mask区域语法:BW=poly2mask(x,y,m,n)unitlut 查找表中A像素值语法:B=unitlut(A,LUT)xyz2double、xyz2unit16 将颜色数据从XYZ转换到双精度、16进制。

MATLAB图像处理函数汇总(二)

MATLAB图像处理函数汇总(二)

MATLAB图像处理函数汇总(⼆)60.imnoise功能:增加图像的渲染效果.语法:J = imnoise(I,type)J = imnoise(I,type,parameters)举例I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);imshow(I)figure, imshow(J)相关命令:rand61.impixel功能:确定像素颜⾊值.语法:MATLAB⾼级应⽤——图形及影像处理 348P = impixel(I)P = impixel(X,map)P = impixel(RGB)P = impixel(Incur)P = impixel(X,map,c,r)P = impixel(RGB,c,r)[carp] = impixel(...)P = impixel(x,y,I,xi,yi)P = impixel(x,y,X,map,xi,yi)P = impixel(x,y,RGB,xi,yi)[xi,yi,P] = impixel(x,y,...)举例RGB = imread('flowers.tif');c = [12 146 410];r = [104 156 129];pixels = impixel(RGB,c,r)pixels =61 59 101253 240 0237 37 44相关命令:improfile, pixval62.improfile功能:沿线段计算剖⾯图的像素值.语法:c = improfilec = improfile(n)c = improfile(I,xi,yi)c = improfile(I,xi,yi,n)[cx,cy,c] = improfile(...)[cx,cy,c,xi,yi] = improfile(...)[...] = improfile(x,y,I,xi,yi)[...] = improfile(x,y,I,xi,yi,n)附录 MATLAB图像处理命令 349[...] = improfile(...,method)举例I = imread('alumgrns.tif');x = [35 338 346 103];y = [253 250 17 148];improfile(I,x,y), grid on相关命令:impixel, pixval63.imread功能:从图形⽂件中读取图像.语法:A = imread(filename,fmt)[X,map] = imread(filename,fmt)[...] = imread(filename)[...] = imread(...,idx) (TIFF only)[...] = imread(...,ref) (HDF only)[...] = imread(...,'BackgroundColor',BG) (PNG only) [A,map,alpha] = imread(...) (PNG only)举例[X,map] = imread('flowers.tif',6);info = imfinfo('skull.hdf');[X,map] = imread('skull.hdf',info(4).Reference);bg = [255 0 0];A = imread('image.png','BackgroundColor',bg); MATLAB⾼级应⽤——图形及影像处理 350 [A,map,alpha] = imread('image.png');相关命令:imfinfo, imwrite,fread,double,uint8,uint1664.imresize功能:改变图像⼤⼩.语法:B = imresize(A,m,method)B = imresize(A,[mrows ncols],method)B = imresize(...,method,n)B = imresize(...,method,h)65.imrotate功能:旋转图像.语法:B = imrotate(A,angle,method)B = imrotate(A,angle,method,'crop')举例I = imread('ic.tif');J = imrotate(I,-4,'bilinear','crop');imshow(I)figure, imshow(J)相关命令:imcrop, imresize66.imshow功能:显⽰图像.语法:附录 MATLAB图像处理命令 351imshow(I,n)imshow(I,[low high])imshow(BW)imshow(X,map)imshow(RGB)imshow(...,display_option)imshow(x,y,A,...)imshow filenameh = imshow(...)相关命令:getimage, imread, iptgetpref, iptsetpref, subimage, truesize, warp 67.imwrite功能:把图像写⼊图形⽂件中.语法:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(...,filename)imwrite(...,Param1,Val1,Param2,Val2...)举例imwrite(X,map,'flowers.hdf','Compression','none',... 'WriteMode','append')相关命令:imfinfo, imread68.ind2gray功能:把检索图像转化为灰度图像.语法:I = ind2gray(X,map)举例load treesI = ind2gray(X,map);imshow(X,map)figure,imshow(I)MATLAB⾼级应⽤——图形及影像处理 352相关命令:gray2ind, imshow, rgb2ntsc69.ind2rgb功能:转化索引图像为RGB真彩图像.语法:RGB = ind2rgb(X,map)相关命令:ind2gray, rgb2ind70.iptgetpref功能:获取图像处理⼯具箱参数设置.语法:value = iptgetpref(prefname)举例value = iptgetpref('ImshowAxesVisible')value =off相关命令:imshow, iptsetpref71.iptsetpref功能:设置图像处理⼯具箱参数.语法:iptsetpref(prefname,value)举例iptsetpref('ImshowBorder','tight')相关命令:imshow, iptgetpref, truesize72.iradon附录 MATLAB图像处理命令 353功能:进⾏反Radon变换.语法:I = iradon(P,theta)I = iradon(P,theta,interp,filter,d,n)[I,h] = iradon(...)举例P = phantom(128);R = radon(P,0:179);I = iradon(R,0:179,'nearest','Hann'); imshow(P)figure, imshow(I)相关命令:radon, phantom73.isbw功能:判断是否为⼆进制图像.语法:flag = isbw(A)相关命令:isind, isgray, isrgb74.isgray功能:判断是否为灰度图像.语法:flag = isgray(A)相关命令:isbw, isind, isrgb75.isindMATLAB⾼级应⽤——图形及影像处理 354功能:判断是否为索引图像.语法:flag = isind(A)相关命令:isbw, isgray, isrgb76.isrgb功能:判读是否为RGB真彩图像.语法:flag = isrgb(A)相关命令:isbw, isgray, isind77.makelut功能:创建⼀个⽤于applylut函数的lookup表.语法:lut = makelut(fun,n)lut = makelut(fun,n,P1,P2,...)举例f = inline('sum(x(:)) >= 2');lut = makelut(f,2)lut =111111111附录 MATLAB图像处理命令 35511相关命令:applylut78.mat2gray功能:转化矩阵为灰度图像.语法:I = mat2gray(A,[amin amax])I = mat2gray(A)举例I = imread('rice.tif');J = filter2(fspecial('sobel'),I);K = mat2gray(J);imshow(I)figure, imshow(K)相关命令:gray2ind79.mean2功能:计算矩阵元素的平均值.语法:b = mean2(A)相关命令:std2, mean, std80.medfilt2功能:进⾏⼆维中值过滤.语法:MATLAB⾼级应⽤——图形及影像处理 356 B = medfilt2(A,[m n])B = medfilt2(A)B = medfilt2(A,'indexed',...)举例I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J)figure, imshow(K)相关命令:filter2, ordfilt2, wiener281.montage功能:在矩形框中同时显⽰多幅图像.语法:montage(I)montage(BW)montage(X,map)montage(RGB)h = montage(...)举例montage(D,map)附录 MATLAB图像处理命令 357相关命令:immovie82.nlfilter功能:进⾏边沿操作.语法:B = nlfilter(A,[m n],fun)B = nlfilter(A,[m n],fun,P1,P2,...)B = nlfilter(A,'indexed',...)举例B = nlfilter(A,[3 3],'median(x(:))');相关命令:blkproc, colfilt83.ntsc2rgb功能: 转换NTSC的值为RGB颜⾊空间.语法:rgbmap = ntsc2rgb(yiqmap)RGB = ntsc2rgb(YIQ)相关命令:rgb2ntsc, rgb2ind, ind2rgb, ind2gray84.ordfilt2功能:进⾏⼆维统计顺序过滤.语法:B = ordfilt2(A,order,domain)B = ordfilt2(A,order,domain,S)MATLAB⾼级应⽤——图形及影像处理 358 B = ordfilt2(...,padopt)相关命令:medfilt285.phantom功能:产⽣⼀个头部幻影图像.语法:P = phantom(def,n)P = phantom(E,n)[P,E] = phantom(...)举例P = phantom('Modified Shepp-Logan',200);相关命令:radon, iradon86.pixval功能:显⽰图像像素信息.语法:pixval onpixval offpixvalpixval(fig,option)相关命令:impixel, improfile87.qtdecomp功能:进⾏四叉树分解.附录 MATLAB图像处理命令 359语法:S = qtdecomp(I)S = qtdecomp(I,threshold)S = qtdecomp(I,threshold,mindim)S = qtdecomp(I,threshold,[mindim maxdim]) S = qtdecomp(I,fun)S = qtdecomp(I,fun,P1,P2,...)举例I = [1 1 1 1 2 3 6 61 12 1 4 5 6 81 1 1 1 10 15 7 71 1 1 1 20 25 7 720 22 20 22 1 2 3 420 22 22 20 5 6 7 820 22 20 20 9 10 11 1222 22 20 20 13 14 15 16];S = qtdecomp(I,5);full(S)ans =4 0 0 0 2 0 2 00 0 0 0 0 0 0 00 0 0 0 1 1 2 00 0 0 0 1 1 0 04 0 0 0 2 0 2 00 0 0 0 2 0 2 00 0 0 0 0 0 0 0相关命令:qtgetblk, qtsetblk88.qtgetblk功能:获取四叉树分解中的块值.语法:[vals,r,c] = qtgetblk(I,S,dim)MATLAB⾼级应⽤——图形及影像处理 360 [vals,idx] = qtgetblk(I,S,dim)举例[vals,r,c] = qtgetblk(I,S,4)vals(:,:,1) =1 1 1 11 12 11 1 1 11 1 1 1vals(:,:,2) =20 22 20 2220 22 22 2020 22 20 2022 22 20 20r =15c =11相关命令:qtdecomp, qtsetblk89.qtsetblk功能:设置四叉树分解中的块值.语法:J = qtsetblk(I,S,dim,vals)举例newvals = cat(3,zeros(4),ones(4));J = qtsetblk(I,S,4,newvals)J =0 0 0 0 2 3 6 60 0 0 0 4 5 6 80 0 0 0 10 15 7 7附录 MATLAB图像处理命令 3610 0 0 0 20 25 7 71 1 1 1 123 41 1 1 1 5 6 7 81 1 1 1 9 10 11 121 1 1 1 13 14 15 16相关命令:qtdecomp, qtgetblk90.radon功能: 计算Radon变换.语法:R = radon(I,theta)R = radon(I,theta,n)[R,xp] = radon(...)举例iptsetpref('ImshowAxesVisible','on')I = zeros(100,100);I(25:75,25:75) = 1;theta = 0:180;[R,xp] = radon(I,theta);imshow(theta,xp,R,[]), colormap(hot), colorbar 相关命令:iradon, phantom91.rgb2gray功能: 转换RGB图像或颜⾊映像表为灰度图像.语法:I = rgb2gray(RGB)newmap = rgb2gray(map)相关命令:MATLAB⾼级应⽤——图形及影像处理 362 ind2gray, ntsc2rgb, rgb2ind, rgb2ntsc92.rgb2hsv功能: 转化RGB值为HSV颜⾊空间.语法:hsvmap = rgb2hsv(rgbmap)HSV = rgb2hsv(RGB)相关命令:hsv2rgb, rgbplot93.rgb2ind功能: 转化RGB图像为索引图像.语法:[X,map] = rgb2ind(RGB,tol)[X,map] = rgb2ind(RGB,n)X = rgb2ind(RGB,map)[...] = rgb2ind(...,dither_option)举例RGB = imread('flowers.tif');[X,map] = rgb2ind(RGB,128);imshow(X,map)相关命令:cmunique, dither, imapprox, ind2rgb, rgb2gray 94.rgb2ntsc功能: 转化RGB的值为NTSC颜⾊空间.语法:yiqmap = rgb2ntsc(rgbmap)YIQ = rgb2ntsc(RGB)附录 MATLAB图像处理命令 363相关命令:ntsc2rgb, rgb2ind, ind2rgb, ind2gray95.rgb2ycbcr功能: 转化RGB的值为YcbCr颜⾊空间.语法:ycbcrmap = rgb2ycbcr(rgbmap)YCBCR = rgb2ycbcr(RGB)相关命令:ntsc2rgb, rgb2ntsc, ycbcr2rgb96.rgbplot功能:划分颜⾊映像表.语法:rgbplot(map)举例rgbplot(jet)相关命令:colormap97.roicolor功能:选择感兴趣的颜⾊区.语法:BW = roicolor(A,low,high)BW = roicolor(A,v)举例I = imread('rice.tif');BW = roicolor(I,128,255);imshow(I);MATLAB⾼级应⽤——图形及影像处理 364 figure, imshow(BW)相关命令:roifilt2, roipoly98.roifill功能:在图像的任意区域中进⾏平滑插补.语法:J = roifill(Incur)J = roifill(I)J = roifill(I,BW)[J,BW] = roifill(...)J = roifill(x,y,I,xi,yi)[x,y,J,BW,xi,yi] = roifill(...)举例I = imread('eight.tif');c = [222 272 300 270 221 194];r = [21 21 75 121 121 75];J = roifill(Incur);imshow(I)figure, imshow(J)附录 MATLAB图像处理命令 365相关命令:roifilt2, roipoly99.roifilt2功能:过滤敏感区域.语法:J = roifilt2(h,I,BW)J = roifilt2(I,BW,fun)J = roifilt2(I,BW,fun,P1,P2,...)举例h = fspecial('unsharp');J = roifilt2(h,I,BW);imshow(J)相关命令:filter2, roipoly100.roipoly功能:选择⼀个敏感的多边形区域.语法:BW = roipoly(Incur)BW = roipoly(I)BW = roipoly(x,y,I,xi,yi)[BW,xi,yi] = roipoly(...)[x,y,BW,xi,yi] = roipoly(...)举例I = imread('eight.tif');c = [222 272 300 270 221 194];r = [21 21 75 121 121 75];BW = roipoly(Incur);imshow(I)MATLAB⾼级应⽤——图形及影像处理 366 figure, imshow(BW)相关命令:roifilt2, roicolor, roifill101.std2功能:计算矩阵元素的标准偏移.语法:b = std2(A)相关命令:corr2, mean2102.subimage功能:在⼀幅图中显⽰多个图像.语法:subimage(X,map)subimage(I)subimage(BW)subimage(RGB)subimage(x,y,...)h = subimage(...)举例load trees[X2,map2] = imread('forest.tif');subplot(1,2,1), subimage(X,map)subplot(1,2,2), subimage(X2,map2)相关命令:附录 MATLAB图像处理命令 367103.truesize功能:调整图像显⽰尺⼨.语法:truesize(fig,[mrows mcols])truesize(fig)相关命令:imshow, iptsetpref, iptgetpref104.uint8功能:转换数据为8位⽆符号整型.语法:B = uint8(A)举例a = [1 3 5];b = uint8(a);whosName Size Bytes Classa 1x3 24 doublearrayb 1x3 3 uint8 array相关命令:double, im2double, im2uint8105.uint16功能:转换数据为16位⽆符号整型.语法:I = uint16(X)MATLAB⾼级应⽤——图形及影像处理 368举例a = [1 3 5];b = uint16(a);whosName Size Bytes Classa 1x3 24 double arrayb 1x3 6 uint16 array相关命令:double, datatypes, uint8, uint32, int8, int16, int32.106.warp功能:将图像显⽰到纹理映射表⾯.语法:warp(X,map)warp(I,n)warp(BW)warp(RGB)warp(z,...)warp(x,y,z,...)h = warp(...)举例[x,y,z] = cylinder;I = imread('testpat1.tif');warp(x,y,z,I);相关命令:imshow附录 MATLAB图像处理命令 369 107.wiener2功能:进⾏⼆维适应性去噪过滤处理.语法:J = wiener2(I,[m n],noise)[J,noise] = wiener2(I,[m n])举例I = imread('saturn.tif');J = imnoise(I,'gaussian',0,0.005);K = wiener2(J,[5 5]);imshow(J)figure, imshow(K)相关命令:filter2, medfilt2108.ycbcr2rgb功能: 转化YcbCr值为RGB颜⾊空间.语法:rgbmap = ycbcr2rgb(ycbcrmap) RGB = ycbcr2rgb(YCBCR)相关命令:ntsc2rgb, rgb2ntsc, rgb2ycbcr 109.zoom功能:缩放图像.语法:zoom onzoom offzoom outMATLAB⾼级应⽤——图形及影像处理 370 zoom resetzoomzoom xonzoom yonzoom(factor)zoom(fig,option)相关命令:imcrop。

matlab中frame2im的用法

matlab中frame2im的用法

matlab中frame2im的用法frame2im函数是MATLAB中的一个图像处理函数,用于将视频帧转换为图像。

该函数的用法十分简单。

要使用frame2im函数,首先需要得到视频帧数据。

这可以通过使用MATLAB中的视频处理函数来实现,例如使用VideoReader函数从视频文件中读取视频帧。

一旦获取到视频帧数据,就可以将其作为frame2im函数的输入参数。

该函数会将视频帧数据转换为一个MATLAB图像对象。

可以通过将其赋值给一个变量来保存这个图像对象。

下面是一个示例代码,展示了frame2im函数的用法:```MATLABvideo = VideoReader('video.mp4'); % 以VideoReader函数读取视频文件frame = read(video, 1); % 读取第一帧视频image = frame2im(frame); % 将视频帧转换为图像imshow(image); % 显示图像```在上述例子中,我们首先使用VideoReader函数读取了名为video.mp4的视频文件,并保存为一个video对象。

然后,我们使用read函数从video对象中读取了第一帧视频,并保存为一个frame对象。

最后,我们使用frame2im函数将frame对象转换为图像,并将结果保存为一个image对象。

最后,我们使用imshow函数将image对象显示出来。

通过以上的步骤,我们可以轻松地将视频帧转换为MATLAB图像,并对其进行进一步的处理和分析。

这对于需要对视频帧进行图像处理的任务非常有用。

MATLAB中图像函数大全 详解及例子

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。

用法:SE = strel(shape,parameters)创建由指定形状shape对应的结构元素。

其中shape的种类有arbitrary''pair''diamond''periodicline''disk''rectangle''line''square''octagon参数parameters一般控制SE的大小。

例子:se1 = strel('square',6)% 创建6*6的正方形se2 = strel('line',10,45)% 创建直线长度10,角度45se3 = strel('disk',15)% 创建圆盘半径15se4 = strel('ball',15,5)% 创建椭圆体,半径15,高度5图像处理函数详解——roipoly功能:用于选择图像中的多边形区域。

用法:BW = roipoly(I,c,r)BW = roipoly(I)BW = roipoly(x,y,I,xi,yi)[BW,xi,yi] = roipoly(...)[x,y,BW,xi,yi] = roipoly(...)BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。

BW选中的区域为1,其他部分的值为0.BW = roipoly(I)表示建立交互式的处理界面。

BW = roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。

例子:I = imread('eight.tif');c = [222 272 300 270 221 194];r = [21 21 75 121 121 75];BW = roipoly(I,c,r);imshow(I)figure, imshow(BW)图像处理函数详解——roifilt2功能:用于对一个区域进行滤波。

matlab resize函数

matlab resize函数

matlab resize函数Matlab是一种非常流行的数学软件,其中的resize函数可以用于图像处理中。

resize函数可以对图像进行缩放,同时也可以对缩放后的图像进行插值操作。

下面我们将分步骤来介绍如何使用Matlab中的resize函数。

步骤一:读取原始图像使用imread函数来读取原始图像,例如:I = imread('lena.tif');这里以常见的lena图像作为例子,将其作为原始图像进行处理。

读取后的图像可以通过imshow函数进行显示。

步骤二:确定缩放比例在缩放图像之前,我们需要确定缩放比例。

这里我们将原始图像水平方向缩小一倍,垂直方向缩小一半,缩放比例为0.5和0.5。

scale_x = 0.5;scale_y = 0.5;步骤三:调用resize函数进行缩放使用resize函数对原始图像进行缩放。

resize函数的第一个参数是原始图像,第二个参数是目标大小(用于指定缩放比例),第三个参数是插值方法。

具体而言,Matlab提供了几种插值方法,包括:最近邻插值、双线性插值、双三次插值等。

这里我们选择使用双线性插值。

J = imresize(I, [ ], 'bilinear', scale_x);这里我们把J作为缩放后的图像。

可以通过imshow函数进行显示。

步骤四:比较缩放前后的图像使用subplot函数进行图像的比较。

具体而言,subplot函数将当前图像窗口划分为M行N列个子区域,并选中第P个区域,将下一个图像显示在该区域中。

subplot(1,2,1);imshow(I); title('Original Image');subplot(1,2,2);imshow(J); title('Resized Image');M和N分别为1,P分别为1和2,即将原始图像和缩放后的图像都进行显示。

步骤五:保存缩放后的图像最后,使用imwrite函数将缩放后的图像保存到本地。

Matlab图像处理工具箱中部分函数用法

Matlab图像处理工具箱中部分函数用法

1. blkproc( )用法blkproc功能:对图像进行分块处理调用形式: B = blkproc(A,[m n],fun, parameter1, parameter2, ...)B = blkproc(A,[m n],[mborder nborder],fun,...)B = blkproc(A,'indexed',...)参数解释:[m n] :图像以m*n为分块单位,对图像进行处理(如8像素*8像素)Fun:应用此函数对分别对每个m*n分块的像素进行处理parameter1, parameter2:要传给fun函数的参数mborder nborder:对每个m*n块上下进行mborder个单位的扩充,左右进行nborder个单位的扩充,扩充的像素值为0,fun函数对整个扩充后的分块进行处理。

这里:fun='P1*x*P2',fun的参数P1,P2,将T,T'传递给fun的参数,即:P1= T,P2=T'.2.dwt2( )用法d wt2功能:单级二维离散小波变换调用格式: [cA,cH,cV,cD] = dwt2(X,'wname')[cA,cH,cV,cD] = dwt2(X,Lo_D,Hi_D)其意义为使用指定的小波基函数'wname'对二维信号X进行二维离散小波变换。

cA,cH,cV,cD分别为近似细节分量、水平细节分量、垂直细节分量和对角细节分量。

3.wavedec2( )用法waveder2功能:二维信号的多层小波分解调用格式:[C,S] = wavedec2(X,N,'wname')[C,S] = wavedec2(X,N,Lo_D,Hi_D)其意义为使用小波基函数'wname'对二维信号X进行N层分解。

4.idwt2( )用法idwt2功能:单级二维离散小波反变换调用格式:X = idwt2(cA,cH,cV,cD,'wname')X = idwt2(cA,cH,cV,cD,Lo_R,Hi_R)X = idwt2(cA,cH,cV,cD,'wname',S)X = idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)X = idwt2(...,'mode',MODE)其意义为由信号小波分解的近似信号cA和细节信号cH,cV,cD经小波反变换重构原信号X。

使用Matlab进行图像处理的方法

使用Matlab进行图像处理的方法

使用Matlab进行图像处理的方法引言:在当今数字化时代,图像处理成为了计算机科学中重要且热门的领域。

图像处理可以用于各种应用,比如医学图像分析、视频监控、人工智能等。

而Matlab作为一种强大的计算工具在图像处理中也发挥着重要的作用。

本文将介绍一些使用Matlab进行图像处理的方法,以帮助读者掌握这一领域的基本技能。

一、读入和显示图像图像处理的第一步是读入和显示图像。

在Matlab中,可以使用imread()函数读取图像,并使用imshow()函数显示图像。

例如,下面的代码将读入名为"image.jpg"的图像,并在Matlab中显示出来。

```image = imread('image.jpg');imshow(image);```二、灰度图像处理在图像处理中,常常需要将彩色图像转换为灰度图像,这可以通过将RGB通道的像素值取平均得到。

Matlab提供了rgb2gray()函数来实现这一转换。

例如,下面的代码将读入一个彩色图像,并将其转换为灰度图像。

```image = imread('image.jpg');gray_image = rgb2gray(image);imshow(gray_image);```三、图像的尺寸调整有时候我们需要调整图像的尺寸,比如缩小或者放大图像,以适应不同的应用场景。

Matlab中提供了imresize()函数来实现这一功能。

下面的代码将读入一个图像,并将其尺寸调整为原来的一半。

```image = imread('image.jpg');resized_image = imresize(image, 0.5);imshow(resized_image);```四、图像的滤波滤波是图像处理中常用的技术,它能够增强或者减弱图像中的某些特征。

在Matlab中,可以使用imfilter()函数来实现各种滤波操作。

使用Matlab进行图像处理的常用函数介绍

使用Matlab进行图像处理的常用函数介绍

使用Matlab进行图像处理的常用函数介绍引言:图像处理是计算机科学和电子工程领域中的重要分支,它利用数字技术对图像进行各种操作和改变,以实现图像的增强、分割、恢复等目标。

而Matlab作为一种功能强大的科学计算软件,被广泛应用于图像处理领域。

本文将介绍几个常用的Matlab图像处理函数,并结合实例进行详解。

一、图像读取与显示函数1. imread函数imread函数是Matlab中用于读取图像的函数,它可以读取各种图像格式(如JPEG、PNG、BMP等)的图像文件,并将其转换为Matlab中的矩阵形式。

示例:```img = imread('image.jpg');```2. imshow函数imshow函数用于在Matlab中显示图像,它可以接受矩阵形式的图像作为输入,并在新窗口中显示出来。

此外,imshow函数还可以对显示的图像进行一些调整,如调整图像的亮度、对比度等参数。

示例:```imshow(img); % 显示读取的图像```二、图像增强函数1. imadjust函数imadjust函数可以调整图像的亮度和对比度,以增强图像的视觉效果。

它通过对图像的像素值进行映射,将原始图像灰度值的范围进行调整,从而使图像的显示效果更好。

示例:```img_adjusted = imadjust(img, [0.2 0.8], [0 1]);```2. histeq函数histeq函数可以进行直方图均衡化处理,使图像的像素值在不同灰度级之间更均匀分布,从而增强图像的对比度和细节。

示例:```img_equalized = histeq(img);```三、图像滤波函数1. imfilter函数imfilter函数实现了不同类型的图像滤波算法,包括平滑滤波、锐化滤波等。

它可以对图像的每个像素点进行卷积运算,以消除噪声、增强边缘等。

示例:```filter = fspecial('average', [5 5]); % 创建一个平滑滤波器img_filtered = imfilter(img, filter); % 对图像进行平滑滤波```2. medfilt2函数medfilt2函数是一种中值滤波算法,它可以有效地去除图像中的椒盐噪声、脉冲噪声等。

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

MATLAB图象处理函数1. 图象文件处理I=imread(filename)_______读入图象文件到内部矩阵图象变量(以后简称图象)imwrite(I,filename)_______将指定图象写到磁盘的图象文件(以后简称图象文件)上imfinfo(filename)_______显示图象文件的信息2. 图象显示2.1 基本显示imshow filename______直接在当前窗口显示图象文件imshow(I)______在当前窗口显示指定图象rgb = getimage______将当前窗口显示的图象读入到矩阵图象变量2.2 多幅图象的显示figure;imshow(I,map)______在新的图象窗口上显示指定图象(多幅图象显示在不同的图象窗口上)subplot(m,n,p);imshow(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[会因不同图象的map不同而用完系统颜色导致显示出错(尤其是8bit显示系统上)]subplot(m,n,p);subimage(I,map)____在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)[subimage先将图象转化为RGB图象然后再显示,因而不同图象的map不同而用完系统颜色导致显示出错]2.3 图象显示的放大和缩小(1)用图象窗口的工具按钮实现[略](2)用命令窗口的函数实现zoom on______允许进行放大和缩小zoom in______对图象进行放大zoom out_____对图象进行缩小zoom off_____禁止进行放大和缩小3. 图象的运算Z = imabsdiff(X,Y) _____求两图象差的绝对值Z = imadd(X,Y) _____图象相加IM2 = imcomplement(IM) _____求图象的补Z = imdivide(X,Y) _____两图象对应象素相除或图象除以常数Z = imlincomb(K1,A1,K2,A2,...,Kn,An) _____计算一系列图象的线性组合图象Z = immultiply(X,Y) _____两图象对应象素相乘或图象乘以常数Z = imsubtract(X,Y) _____图象相减4. 图象处理在MA TLAB中,图象是以矩阵的形式存放的,二值图象、灰度图象和索引(Indexed)图象用二维矩阵存放,彩色(RGB)图象用三维矩阵存放。

前一类图象可以通过双下标访问图象的象素,如I(i,j),彩色(RGB)图象可以通过三下标访问图象的象素,如I(i,j,k),k=1,2,3分别表示R、G和B三个彩色分量。

4.1 图象直方图imhist(I)_______绘制指定图象变量的直方图到当前窗口I1=histeq(I)_______求指定图象的直方图均衡化图象4.2 图象的灰度变换J = imadjust(I,[low_in high_in],[low_out high_out])______调整图象的灰度范围level = graythresh(I)_______求图象的全局门限以便对图象进行二值化处理BW = im2bw(I,level)[BW = im2bw(X,map,level),BW = im2bw(RGB,level)]_____按指定的门限将指定图象I转化为二值图象。

4.3 图象的格式转换I2=im2double(I1)_____将图象转换为双精度格式I2=im2uint8(I1)_____将图象转换为8比特字节格式I2=im2uint16(I1)_____将图象转换为16比特字格式4.4 多帧图象的处理Im=cat(4,I1,I2,I3,…)______将多幅图象I1,I2,I3,…在第4维上合成一个多帧图象Im (cat为矩阵连接函数,cat(2,A,B) 等价于[A,B],cat(1,A,B) 等价于[A;B])Frm3 = Im(:,:,:,3)_________取多帧图象Im的第3幅图象(可用于赋值、显示)Imshow(Im(:,:,:,3))________显示多帧图象Im的第3幅图象montage(Im)_______同时显示多帧图象Im的各幅图象(按列方式组成一个近似正方型)mov = immovie(Im)_____将多帧图象Im转化为电影图象movmovie(mov)_____显示电影图象mov===================== 例=========================The following example loads mri.tif and displays the third frame.% Initialize an array to hold the 27 frames of mri.tifmri = uint8(zeros(128,128,1,27));for frame=1:27 % Read each frame into the appropriate frame in memory[mri(:,:,:,frame),map] = imread('mri.tif',frame);endimshow(mri(:,:,:,3),map);================================================4.5 图象的几何变换4.5.1图象尺寸变换B = imresize(A,m,method)_____将图象A放大(m>1.0)或缩小(0<m<1.0)m倍B = imresize(A,[mrows ncols], method) _____将图象A变换为mrows行ncols列的图象B = imresize(...,method,n) _____用nX n模板完成上述几何变换插补中的滤波B = imresize(...,method,h) _____用指定的模板h完成上述几何变换插补中的滤波method: 一个可选的参数,决定几何变换插补的方法,可取值如下:'nearest' (default) uses nearest neighbor interpolation.'bilinear' uses bilinear interpolation.'bicubic' uses bicubic interpolation.4.5.2图象旋转变换B = imrotate(A,angle, method)____将图象A按指定的插补方法旋转指定的角度,产生一个足够容得下原始图象的新图象。

B = imrotate(A,angle, method,'crop') ____将图象A按指定的插补方法旋转指定的角度,产生一个与原始图象一样大小的新图象。

4.5.3图象修剪处理I = imcrop______交互地选择当前图象窗口的一个区域并赋值给一个新的图象4.6 图象的校正(Registration)(1)读入原图象和待校正图象(2)调用cpselect()函数,选择控制点对,保存控制点对(3)调用cpcorr()函数,微调控制点对[可选](4)调用cp2tform()函数,得到变换参数(5)调用imtransform()函数,用变换参数对待校正图象进行校正变换4.7 图象的邻域处理和块处理4.7.1 模板处理(滑动邻域操作)对每一个象素按指定的领域进行指定的操作处理。

输出图象和输入图象的大小一样。

B = nlfilter(A,[m n],fun)____对图象A按mXn模板调用指定函数进行模板处理B = nlfilter(A,[m n],fun,P1,P2,...) ____对图象A按mXn模板调用指定函数以及附加参数P1,P2,..进行模板处理例如:B = nlfilter(a,[3 3],'min(max(x))*P1+P2',0.5,1)____表示对图象A的每一个象素用其八邻域每列最大值的最小值乘以0.5再加上1代替。

B = nlfilter(A,'indexed',...) ____对索引图象A进行上述模板处理fun可以是MA TLAB表达式或内建函数字符串,如‘mean2’、‘std2’、‘corr2’和‘x*2’,也可以是函数句柄(@函数名)或嵌入函数对象(fun = inline('max(x(:))');),所指定的函数必须接受mXn矩阵且返回一个标量。

4.7.2 独立分块处理将图象划分为指定大小的分块,然后对每一个块按指定的操作处理,输出图象的每一块内象素个数和取值决定于所指定的操作。

B = blkproc(A,[m n],fun) ____对图象A按mXn分块调用指定函数进行独立分块处理B = blkproc(A,[m n],fun,P1,P2,...) ____对图象A按mXn分块调用指定函数以及附加参数P1,P2,..进行独立分块处理例如:B = blkproc (A,[3 3],’ P1*x*P2’,P1,P2)____表示对图象A的每一个3X3分块分别用左乘矩阵P1再右乘矩阵P2后的矩阵代替。

B = blkproc(A,[m n],[mborder nborder],fun,...) ____对图象A按mXn大小和mborder行nborder列重叠分块调用指定函数进行独立分块处理B = blkproc(A,'indexed',...) ____对索引图象A进行上述独立分块处理fun可以是MA TLAB内建函数名字符串,如‘mean2’,‘std2’和‘corr2’,也可以是函数句柄(@函数名)或嵌入函数对象(fun = inline('max(x(:))');),所指定的函数必须接受mXn矩阵,可以返回一个矩阵(可以与输入矩阵大小一样,也可以不一样)、一个向量或一个标量。

4.7.3 按列向量进行模板和独立分块处理调用函数colfilt,先将图象的分块变换为一个临时的列块矩阵数据,然后将该临时矩阵一次性传给指定函数,该函数可以按列对临时矩阵进行处理然后返回同样大小的矩阵,colfilt 函数会将输出矩阵转化回原图象的分块作为输出。

B = colfilt(A,[m n],'sliding',f)____按列向量进行模板处理B = colfilt(A,[m n],'distinct',f)____按列向量进行独立分块处理4.8 图象的线性滤波和滤波器设计4.8.1 图象的线性滤波B = imfilter(A,H)_____对图象A按H指定的滤波核进行相关滤波处理B = imfilter(A,H,option1,option2,...) _____对图象A按H指定的滤波核进行指定滤波处理option1,option2,等可以是以下选项:X____滤波过程中,图象边界以外的象素的取值为数值X[默认值是0]'symmetric'____滤波过程中,图象边界以外的象素的取值为以边界对称的象素的值。

相关文档
最新文档