MENU

Matlab—影像分析基础

November 22, 2018 • Read: 971 • matlab

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

imwrite()

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

最后编辑于: November 25, 2018
Archives Tip
QR Code for this page
Tipping QR Code