matlab的基本用法一关于对图像的处理
原文1. 读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等
%读取指定路径下的图片,并保存成一个图像矩阵
imageMatrix= imread('C:\Users\AA\Pictures\traceImg.jpg');
%一般情况下,图像矩阵比较大,因此可直接对imageMatrix经行处理
%disp(imageMatrix);
2. 图像处理
f=rgb2gray(imageMatrix); %将彩色图转换成灰度图
[M,N]=size(f); %查看图像像素大小
whos f; %查看变量f的各个属性
imshow(f); %显示图像,参数是图像矩阵
%imshow()还有一个参数
%图像上所有小于等于100的数值都会显示成黑色,所有大于等于200的数值都会显示成白色
%figure的作用是同时显示多张图像,即不会覆盖之前的图像
figure,imshow(f,[100 200]);
3.写入图像
写入图像使用imwrite()函数。
文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式
如:
%在文件名中指明了图像格式
imwrite(f,'filename') ---> imwrite(imageMatrix,'traceImg.jpg')
%在文件名中没有指明格式(这是不可以的),虽然增加第三个参数,显式指明图像格式
%但是写入的不是图片
imwrite(f,'filename','format') ---> imwrite(imageMatrix,'traceImg','jpg') %这是错误的
imwrite(f,'filename','format') ---> imwrite(imageMatrix,'traceImg.jpg','jpg') %这是正确的
%在filename中也可以指定写入图片的路径,如:
imwrite(imageMatrix,'C:\Users\AA\Pictures\traceImg.jpg')
还可以有其他参数,如质量参数:
%q是0到100之间的一个整数。对比不同质量的图像效果。
imwrite(f, 'filename.jpg', 'quality', q);
4.其它1
获取图像信息:
% imfinfo(FILENAME,FMT)
% returns a structure whose
fields contain information about an image in a graphics
file. FILENAME is a string that specifies the name of the
graphics file, and FMT is a string that specifies the format
of the file.
%Fields of the structure includes Filename,FileModDate,FileSize,Format,FormatVersion
Width,Height,BitDepth,ColorType
K=imfinfo('C:\Users\AA\Pictures\traceImg.jpg'); %将图像的信息保存在变量K中
image_bytes = K.Width * K.Height * K.BitDepth / 8;
compressed_btyes = K.FileSize;
compression_ratio = image_bytes / compressed_bytes
5.其它2
1.由于图像转换成了图像矩阵,所以对矩阵的操作也可以平移到对图像矩阵的操作。
2.图像处理工具包还提供其他一些算术运算:
imadd 两个图像相加,或者一个图像加上一个常量
imsubstract 两个图像相减,或者一个图像减掉一个常量
immultiply 两个图像相乘,或者一个图像乘上一个常量
imdivide 两个图像相除,或者一个图像除以一个常量
imabsdiff 两个图像的差的绝对值
imcomplement 求一个图像的反色图
inlincomb 求一组图像的线性组合
以上这些函数的参数都是矩阵或者常数形式,返回值也是一个矩阵。
如:
imageMatrixOne=imread('C:\Users\AA\Pictures\traceImg.jpg'); %矩阵
imageMatrixTwo=imread('C:\Users\AA\Pictures\007.jpg'); %矩阵
imshow(imageMatrixOne(100:300,100:300)); %子图
imshow(imadd(imageMatrixTwo,102)); %图加常量
imshow(imcomplement(imageMatrixOne)); %反色图
3.图像就相当于一个矩阵,所以对图像处理可以理解成对一个矩阵的处理,在此基础上,我们可以提取一个图像的子图或者计算一个图像像素的平均直等等。在这里由于篇幅原因,仅仅写出基本的关于图像的用法,更多其他应用还需查阅相关文档。