我家有只猫,小名叫胖包。它的背影长这样。
一只思考喵生的猫
将这张图不断放大后,你会看到一个个色块,就是平时所说的“像素”。每英寸含有多少个像素就称为图片的分辨率(单位ppi,和dpi有区别)。
每个像素包含了图片的颜色或灰度等级信息,专业的说法叫做位深度。这些包含不同信息的像素组合起来就是一个矩阵,也就是我们看到的照片。
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)
这些都是数字图像处理最基本的语言,打好基础才好进行更高级的操作。以后我们会讲如何让电镜照片的背景均匀化,如何给灰度图像加伪彩效果,如何给图片去噪声等等。
好了,先写到这里吧,我要给胖包铲屎去了。