我家有只猫,小名叫胖包。它的背影长这样。

一只思考喵生的猫

将这张图不断放大后,你会看到一个个色块,就是平时所说的“像素”。每英寸含有多少个像素就称为图片的分辨率(单位ppi<Pixel per inch>,和dpi<Dots per inch>有区别)。

每个像素包含了图片的颜色或灰度等级信息,专业的说法叫做位深度。这些包含不同信息的像素组合起来就是一个矩阵,也就是我们看到的照片。

Matlab正是专业的矩阵软件,用来处理数字图像再合适不过了。首先,我们得学会读取一张图片的信息,用到的函数为imread。例如输入:

>> A=imread('胖包.jpg');

这时,胖包就变成了一个矩阵A。需要注意的是,输入的图片必须是左边的当前文件夹中的图片,如果不是,则需输入图片的完整路径:

>> A=imread('E:\Turing Studio\MATLAB\胖包.jpg');

读取照片后可以用whos函数查看照片的信息:

>> whos A

1386×1039代表照片的尺寸,×3是R、G、B三个通道,unit8和double一样,都是数据类型。unit8的范围是0~255,即RGB的数值范围。

所以,A矩阵涵盖了照片‘胖包.jpg’的所有信息。如果想看到胖包,只需输入:

>> imshow(A)

有了A矩阵之后,各种图像变换就不成问题了。

比如改个大小(imresize),胖包秒变矮胖包:

>> B=imresize(A,[500 500]);

>> imshow(B)

或者转个角度(imrotate),胖包变身蝙蝠包:

>> C=imrotate(A,180);

>> imshow(C)

想要图片变亮或变暗可以直接在A矩阵的基础上加上或减去一个数值,例如要得到‘亮包’和‘暗包’:

>> imshow(A+50)

>> imshow(A-50)

这些都是数字图像处理最基本的语言,打好基础才好进行更高级的操作。以后我们会讲如何让电镜照片的背景均匀化,如何给灰度图像加伪彩效果,如何给图片去噪声等等。

好了,先写到这里吧,我要给胖包铲屎去了。