Matlab—影像分析基础

mac2022-06-30  118

Read and Show an image

Read an image:imread()Show an image:imshow() I = imread('pout.tif'); %read imshow(I); %show

一张图片有 rgb 三种颜色,每个点就是一个矩阵的数值,而这个数值就代表着 rgb,所以我们操作一个图片,也就相当于操作一个矩阵内的数值,或者说,修改矩阵内的数值,也就相当于修改图片

接下来做一个操作,将这个矩阵内行数和列数能被 2 整除的,将这一行和列内的值全部变为 0

for i = 1 : size(i,1) for j = 1 : size(i,2) if(rem(i,2) == 0 || rem(j,2) == 0) I(i,j) = 0; end end end

Imageinfo

如果想要查询有关于一张图片的相关信息,可以使用函数imageinfo,其调用格式为:imageinfo('string'),其中 string 为图片的名称**(包含后缀名)**

imageinfo('pout.tif')

Imtool

imtool函数主要是用来查看一个图片的每个像素对应的数值

imtool('pout.tif')

Image Processing

immultiply()

immultiply函数的调用格式为:Immultiply(I,x),其含义是,将图像对应的矩阵 I 内的所有数值乘以 x

I = imread('rice.png'); subplot(1,2,1); imshow(I); J = immultiply(I,1.5); subplot(1,2,2); imshow(J);

imadd()

imadd函数的作用是将两张影像相加,其调用格式为:imadd(I,J),I 的含义是一个影像对应的矩阵,J 是另一个影像对应的矩阵,但是使用imadd()函数有一个限制条件,就是 I,J 必须是同型的矩阵,否则无法相加

I = imread('rice.png'); J = imread('cameraman.tif'); K = imadd(I,J); subplot(1,3,1);imshow(I); subplot(1,3,2);imshow(J); subplot(1,3,3);imshow(K);

imhist()

imhist()函数的作用是将一个图片的数值分析出来并做成一个柱状图,其调用格式为:imhist(I)

I = imread('pout.tif'); imhist(I);

稍微解释一下这个图,横坐标是 0-255,纵坐标是频数,表示这个值有多少个

histeq()

通过分析上面的图,我们发现他在某一个区间数值比较集中,而其他数值几乎就没有,这种图像的数值分布并不是很均匀,所以如果我们想要它分布更加均匀,就可以使用histeq函数,起调用格式为:histeq(I)

I = imread('pout.tif'); I2 = histeq(I); subplot(1,4,1);imhist(I); subplot(1,4,2);imshow(I); subplot(1,4,3);imshow(I2); subplot(1,4,4);imhist(I2);

imrotate()

imrotate函数的作用是旋转一个图像,其调用格式为:imrotate(I,theta,’bilinear’),theta 表示旋转的角度,billinear照写即可

I = imread('rice.png'); subplot(1,2,1); imshow(I); J = imrotate(I,35,'bilinear'); subplot(1,2,2); imshow(J);

还有一些对影像的操作,这里就不讲了,下面附一张图,有需要的可以自行Google [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAKmHUCi-1569937923414)(https://s1.ax1x.com/2018/11/22/FP4lJH.png#shadow)]

imwrite()

imwrite函数的作用是保存图像,其调用格式为:imwrite(I,’string’),其中,I 是保存图像对应的矩阵,string 是保存的名字(包含后缀名)

最新回复(0)