常用图像函数

发布 2022-06-28 22:06:28 阅读 6965

rgb色彩模式使用rgb模型为图像中每一个像素的rgb分量分配一个0~255范围内的强度值。例如:纯红色r值为255,g值为0,b值为0;灰色的r、g、b三个值相等(除了0和255);白色的r、g、b都为255;黑色的r、g、b都为0。

rgb图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现***种颜色。

在 rgb 模式下,每种 rgb 成分都可使用从 0(黑色)到 255(白色)的值。 例如,亮红色使用 r 值 246、g 值 20 和 b 值 50。 当所有三种成分值相等时,产生灰色阴影。

当所有成分的值均为 255 时,结果是纯白色;当该值为 0 时,结果是纯黑色。

imread函数用于读入各种图象文件,其一般的用法为。

x,map]=imread(‘filename’,‘fmt’)

其中,x,map分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。

例:[x,map]=imread(’

也可以直接a= imread(’

imwrite函数用于输出图象,其语法格式为:

imwrite(x,map,filename,fmt)按照fmt指定的格式将图象数据矩阵x和调色板map写入文件filename。

imfinfo函数用于读取图象文件的有关信息,其语法格式为。

imfinfo(filename,fmt)

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

例:imfinfo(''

ans =filename: 'c:\matlab6p5\toolbox\images\imdemos\'

filemoddate: '26-oct-1996 06:11:58'

imshow函数是最常用的显示各种图象的函数,其语法如下:

imshow(x,map)

其中x是图象数据矩阵,map是其对应的颜色矩阵,若进行图象处理后不知道图象数据的值域可以用代替map。

需要显示多幅图象时,可以使用figure语句,它的功能就是重新打开一个图象显示窗口。

例:i=imread(‘

imshow(i);

j=imread(‘

figure,imshow(j);

imhist函数来计算和显示图象的直方图,imhist函数的语法格式为:

imhist(i,n)

imhist(x,map)

其中imhist(i,n)计算和显示灰度图象i的直方图,n为指定的灰度级数目,默认值为256。imhist(x,map)计算和显示索引色图象x的直方图,map为调色板。

例:i = imread(''

imshow(i)

figure, imhist(i)

如果原图象f(x,y)的灰度范围是[m,m],我们希望调整后的图象g(x,y)的灰度范围是[n,n],那么下述变换,,就可以实现这一要求。

matlab图象处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。imadjust函数的语法格式为:

j = imadjust(i,[low_in high_in],[low_out high_out])

j = imadjust(i,[low_in high_in],[low_out high_out])返回图象i经过直方图调整后的图象j,[low_in high_in]为原图象中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围。

例:i = imread(''

j = imadjust(i,[0.3 0.7],[

imshow(i), figure, imshow(j)

matlab图像处理工具箱中的函数imresize可以用上述的3种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。

imresize函数的语法格式为:

b = imresize(a,m,method)

参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。

b = imresize(a,m,method)返回原图a的m倍放大的图像(m小于1时效果是缩小)。

在matlab中提供了给图像加入噪声的函数imnoise

imnoise的语法格式为。

j = imnoise(i,type)

j = imnoise(i,type,parameters)

其中j = imnoise(i,type)返回对原始图像i添加典型噪声的有噪图像j。

参数type和parameters用于确定噪声的类型和相应的参数。

下面的命令是对图像分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:

例:i=imread(''

j1=imnoise(i,'gaussian',0,0.02);

j2=imnoise(i,'salt & pepper',0.02);

j3=imnoise(i,'speckle',0.02);

subplot(2,2,1),imshow(i),title('原图像');

subplot(2,2,2),imshow(j1),title('加高斯噪声');

subplot(2,2,3),imshow(j2),title('加椒盐噪声');

subplot(2,2,4),imshow(j3),title('加乘性噪声');

在上面的例子中使用了一个函数subplot。其作用就是将多幅图像显示再同一幅图像显示对话框中。其语法格式为:

subplot(m,n,p)

其作用就是将一个图像显示对话框分成m行n列,并显示第p幅图像。

在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在matlab的矩阵运算中要求所有的运算变量为double型(双精度型)。因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将图像数据转换成双精度型数据。matlab中提供了这样的函数:

im2double函数,其语法格式为:

i2 = im2double(i1)

其中i1是输入的图像数据,它可能是unit8或unit16型数据,通过函数的变化输出i2为一个double型数据,这样两图像数据就可以方便的进行相加等代数运算。

作为一个示例,现将刚刚显示的加有噪声的图像进行相加求平均以消除图像的噪声。在图像中我们给图像加的是均值为0,方差为0.02的高斯噪声,将图像相加了一百遍,再求其平均值。

程序如下:

例图像加噪声再通过多次相加求平均的方法祛除噪声。

i,m]=imread(''

j=imnoise(i,'gaussian',0,0.02);

subplot(1,2,1),imshow(i,m),title('原图像');

subplot(1,2,2),imshow(j,m),title('加噪声后图像');

k=zeros(242,308);

for i=1:100

j=imnoise(i,'gaussian',0,0.02);

j1=im2double(j);

k=k+j1;

endk=k/100; %求图像的平均。

figure;imshow(k),title('相加求平均后的图像');

imresize函数的语法格式为:

b = imresize(a,m,method)

这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。

b = imresize(a,m,method)返回原图a的m倍放大的图像(m小于1时效果是缩小)。

例:i=imread(''

j = imresize(i,1.25);

imshow(i),title('原图像')

figure,imshow(j),title('放大后的图像')

在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。

imrotate的语法格式为:

b = imrotate(a,angle,method

函数imrotate对图像进行旋转,参数method用于指定插值的方法,,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。一般说来旋转后的图像会比原图大,超出原图部分值为0。

例:i=imread(''

j=imrotate(i,30,'bilinear');

imshow(i);title('原图像')

figure,imshow(j),title('旋转后的图像')

matlab提供的快速傅立叶变换函数。

1)fft2

fft2函数用于计算二维快速傅立叶变换,其语法格式为:

b = fft2(i)

b = fft2(i)返回图象i的二维fft变换矩阵,输入图象i和输出图象b大小相同。

例如,计算图象的二维傅立叶变换,并显示其幅值的结果,其命令格式如下。

load imdemos saturn2

imshow(saturn2)

b = fftshift(fft2(saturn2));

imshow(log(abs(b)),notruesize')

函数图像,导数图像

一 填空题。1 某医药研究所开发一种新药,如果成年人按规定的剂量服用,据检测,服药后每毫升血液中的含药量y 毫克 与时间t 小时 之间的关系用如图所示曲线表示 据进一步测定,每毫升血液中含药量不少于0.25毫克时,疾病有效。则服药一次 该疾病有效的时间为小时 2 若函数的图象如图,则a的取值范围是 ...

导函数图像与原函数图像关系 我

导函数图像类型题 类型一 已知原函数图像,判断导函数图像。1.福建卷11 如果函数的图象如右图,那么导函数的图象可能是。2.设函数f x 在定义域内可导,y f x 的图象如下左图所示,则导函数y f x 的图象可能为 3.函数的图像如下右图所示,则的图像可能是。4.若函数的图象的顶点在第四象限,则...

导函数图像与原函数图像关系 我

导函数图像类型题 类型一 已知原函数图像,判断导函数图像。1.福建卷11 如果函数的图象如右图,那么导函数的图象可能是。2.设函数f x 在定义域内可导,y f x 的图象如下左图所示,则导函数y f x 的图象可能为 3.函数的图像如下右图所示,则的图像可能是。4.若函数的图象的顶点在第四象限,则...