matlab的基本用法---关于对图像的处理

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.图像就相当于一个矩阵,所以对图像处理可以理解成对一个矩阵的处理,在此基础上,我们可以提取一个图像的子图或者计算一个图像像素的平均直等等。在这里由于篇幅原因,仅仅写出基本的关于图像的用法,更多其他应用还需查阅相关文档。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值