目录

图像类型的转换

图像文件读写

视频文件读写

数字图像的运算

图像的几何变换


图像类型的转换


RGB图像转为灰度图像:X=rgb2gray(I) %I为RGB图像,X为转换后的图像

RGB图像转换为索引图像:

[X,map]=rgb2ind(I,tol) %toll的范围是0.0到1.0,map包含至少(floor(1/tool)+1)^3个颜色

[X,map]=rgb2ind(I,N)%map包含至少N个颜色

X=rgb2inb(I,map) %【x,map】对应的是索引图像,colorcube(M)返回包含colorcube的M × 3矩阵。M = 256, colorcube返回完全一样的颜色。当M < 8时,长度为M的灰色斜坡返回。

灰度图像转换为索引图像:

[X,map]=gray2ind(I,n)%该函数是将灰度图像转为索引图像,灰度级为n

[X,map]=gray2ind(BW,n)%该函数是将二值图像BW转换为索引图像

map中对于的颜色值为颜色图gray(n)中的颜色值,gray(M)返回一个包含灰度色图的M × 3矩阵

I=grayslice(G,n)%该函数是将灰度图像中的像素灰度均匀化为n个等级转换为索引色图像,然后imshow(I,jet(n)),jet()函数生成颜色映射表,给图像I对于像素点加上颜色

索引图像转换为灰度图像:

I=ind2gray(X,map)%该函数将具有颜色映射表map的索引图像转化为灰度图像,[X,map]=imread();

索引图像转为RGB图像:

RGB=ind2rgb(X,map)%索引图像中的map表直接赋给RGB中对应像素的颜色值,肉眼下两图一样

 灰度图像,RGB转换为二值图像:

BW=im2bw(I,level)%level为设置的阈值参数,取值范围在[0,1],输出图像BW用白色替换输入图像中亮度大于level*255的所有像素,用黑色替换其他,像如果没有指定level, im2bw将使用值0.5。

数值矩阵转换为灰度图像:

I=mat2gray(X,[xmin,xmax])%1指白色,0指黑色,数据矩阵小于0取xmin,大于1取xmax。


图像文件读写

文件信息的读取:imfinfo('文件名件.类型')%可以查看图像的图像类型,大小等。

图像文件的读取:

I=imread('文件名件.类型')%灰度图像M*N二维,真彩色图像M*N*3的三维数组。

[X,map]=imread('文件名件.类型')%索引图像,map用于存储与索引图像相关的颜色映射表。

[X,map]=imread('文件名件.GIF',idx)%idx读取第几帧图像。

图像文件的保存:

imwrite(I,'文件名件','类型')将图像I保存。

imwrite(X,map,'文件名件','类型')用于保存索引图像。

图像显示函数:

imshow(I)  imshow('文件')  imshow(X,map)%图像视窗

imtool(I)%图像工具浏览器

image(I)   image([1,2],[3,4],I)%X轴1到2,y轴4到3,个人理解类似于A([1 2],[2 3])这种。

image有坐标轴区别于前面两个函数

彩色条:

colorbar%在图像上形成一个彩色条,默认在右侧

imshow(I),colorbar;

colobar('off')   、colobar('hide')和colobar('delete')删除当前轴所有的相关彩色条。


视频文件读写

v = VideoReader(filename)%读取视频

v.NumberOfFrames%获取视频帧数(我用的是matlab2016a,V结构里面没有总帧数所以加上了)

read(v,[1 10])%读取视频中的1:10帧

read(v,[1 Inf])%从第 1 帧开始读取到视频结束。

VideoReader.getFileFormats()%查看在你的matlab上 VideoReader支持的文件格式列表


数字图像的运算

          图像的加法:imadd(X,Y)%其中X,Y为大小相等的图像矩阵,Y如果是数字则表示在原图像X上每个像素值加30,这里不能用索引图像。

附加噪声:imnosie(I,type,parameters)%type为噪声类型:gaussian(高斯噪声),localvar(零均值的高斯噪声),poisson(泊松噪声),salt & pepper(椒盐噪声)

J = imnoise(I,'gaussian',M,V),M-均值,V-方差

J = imnoise(I,'localvar',V)

J = imnoise(I,'poisson')

J = imnoise(I,'salt & pepper',d),其中d为噪声密度。 这将影响大约d*numel(I)像素,d的默认值是0.05

    图像的减法:imsubtract(X,Y),这里Y可以是常熟类似于上面的加法---获取两个图像之间的差异

 图像的乘法:immulitply(X,Y)——实现图像局部显示

Y--常数,大于1起亮度增强的作用


图像的几何变换

impixel(I,C,R)%输出像素的颜色

图像的缩放[B,newmap]=imresize(A,map,m)%m为缩放比例

B=imresize(A,m)   B=imresize(A,[行,列])%缩放后的行列

图像的旋转imrotate(A,angle)

图像的修剪imcrop(X,行,列),imcrop(I)--截选好图像,然后双击

图像的平移         

J(i+a,j+b,:)=I(i,j,:)

将图像的数据类型转换为双精度--目的是提高精度im2double(I)

      图像的转置          

图像的空间变换:B=imtransform(A,TFORM);A是图像矩阵,TFORM通过maketform()返回

maketform('affine',D)%平移,缩放,旋转

返回二维的参数结构体,输入D应该是(2+1)*(2+1)或者(2+1)*2的矩阵

如果是3*3的矩阵,最后一列应该为(zeros(2,1);1)

平移 1 0

0

1
缩放 0 0 0 0
旋转(逆时针a) cosa sina 0 -sina cosa 0

eg:


灰度变换增强

灰度图像的直方图可以通过imhist()获取,或通过编程 k=I(i,j);N(k+1)=N(k+1)+1

imadjust(I,[0.2,0.5],[0,1])%小于255*0.2的灰度值设为0。

灰度图像的亮度改变brighten(n),通常放在imshow()的后面%n>0&&n<1,图像变亮,

最佳输入区间:stretchlim(I)%获取最佳区间。

灰度反转:imcomplement()%0变为255,将灰度值为X的像素值转换为255-X。

RGB图像也可以求直方图(分解R,G,B)  imhist(I(:,:,1))%计算R分量的直方图。

直方图均衡化:histeq()%直方图是近似均匀的。


图像的统计特性

图像的均值:mean2()计算矩阵的均值,对于RGB图像mean(I(:,:,1))先弄成2维矩阵。

       图像的标准差std2()

图像的相关系数:两个大小相等的二维矩阵,可以计算相关系数,corr2(A,B)。

图像的等高线:imcontour(I,n)%n为设置等高线的条数,不指定函数会自动选取n,好玩。


空域滤波

空域滤波是对图像中每一个像素为中心的领域进行的一系列的运算

            线性空域滤波:线性平均滤波是一种常用的线性空域滤波,它是一种低通滤波,信号低频部分通过,阻止高频部分通过。由于图像的边缘处于高频部分,因此线性平均滤波后,会造成图像边缘的模糊。

eg:常用的模版大小为3X3,如下所示:

对图像进行平滑:   imfilter(I,T),

通过卷积进行滤波C = conv2(A,B,'___')---锐化滤波后得到的图像,图像的边缘部分得到了加强

same——返回与A大小相同的卷积的中心部分。B是模版

full——返回完整的二维卷积,默认的

conv2%把图像的轮廓描绘出来,K=原图-卷积后的图%边缘部分会加强。


非线性空域滤波:

              中值滤波:是一种保护边缘的非线性图像平滑方法——medfilt2(I)进行图像的二维中值滤波,中指滤波非常适合去除椒盐噪声,取得非常好的滤波效果。

wiener2()根据图像的噪声进行自适应滤波,该函数根据图像的局部方差来调整滤波器的输出,当局部方差大时,滤波器的平滑效果较弱;当局部方差小时,滤波器的平滑效果较强。

J = wiener2(I,[m n])使用像素方向自适应Wiener滤波对图像I进行滤波,使用大小为m × n的邻域来估计局部图像的均值和标准差。

排序滤波:ordfilt()还不会,这就很难受,书上的代码看不懂


频域滤波:

通过傅里叶变换将图像从空间域转换为频率域,然后在频率域内对图像进行处理,最后通过傅里叶反变换转换到空间域。

低通滤波:作用是过滤掉包含在高频中的噪声,同时也抑制了图像边缘

对于大小为M*N的图像,频率点(u,v)与频率中心的距离为D(u,v)其表达式为:

1.理想低通滤波器:Do为理想低通滤波器的截止频率,在半径为Do的范围内,所有频率都可以没有衰减的通过滤波器,在半径之外的全部衰减为0。理想低滤波器具有平滑图像的作用,但是有很严重的振铃现象(振铃效应,是由于在图像复原中选取了不适当的图像模型造成的,振铃效应产生的直接原因是图像退化过程中信息量的丢失,尤其是高频信息的丢失,其严重降低了复原图像的质量,并且使得难于对复原图像进行后续处理)

matlab图像处理(笔记)相关推荐

  1. 【matlab图像处理笔记5】【图像变换】(四)图像的正交变换

    文章目录 推荐阅读 前言 图像正交变换简介 离散傅里叶变换 对图像进行离散傅里叶变换的作用 二维离散傅里叶变换 频谱图 示例 离散余弦变换 简介 基本原理 示例 推荐阅读 本系列其他文章 [matla ...

  2. 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换

    文章目录 推荐阅读 前言 霍夫变换概述 霍夫变换直线检测原理 从笛卡尔坐标系到霍夫空间 两点一线的霍夫空间形式 寻找共线的点 直角坐标系存在的问题 极坐标参数空间下的霍夫变换 matlab霍夫变换直线 ...

  3. Matlab图像处理笔记--图像修复

    大多数的修图软件都是通过借用相邻像素内容来对照片进行处理,这其中比较有代表性的就要数Adobe的修图软件了,但这这种方式也有一定的缺陷,就是当你的图像变成这个样子时,那么这张照片就彻底没救了,如下图所 ...

  4. B站台湾大学郭彦甫|MATLAB 学习笔记|08 图像处理I Image Processing

    MATLAB学习笔记(08 图像处理I Image Processing) 如果想获得更好浏览体验的朋友可以转到下面链接 08 1. 基本操作 读取图像 imread() 展示图像 imshow() ...

  5. 数字图像处理MATLAB学习笔记(五)

    数字图像处理MATLAB学习笔记(五) Color Image Processing 1 Color Image Representation in MATLAB 这里不多说了,彩色图片在计算机中以R ...

  6. matlab bwmorph spur,matlab图像处理学习笔记-数学形态与二值图像操作

    matlab图像处理学习笔记-数学形态与二值图像操作 数学形态学主要处理的是二值图像,因为二值图像的处理操作比较简单. 9.1 数学形态学图像处理 基本思想:利用一个称作结构元素(structurin ...

  7. B站台湾大学郭彦甫|MATLAB 学习笔记|09 图像处理II Image Processing

    MATLAB学习笔记(09 图像处理II Image Processing) 如果想获得更好浏览体验的朋友可以转到下面链接 09 1. 提出问题 题目:如何找出图片中的米粒,并且确定他们的大小? 老师 ...

  8. Matlab学习笔记(3)—GUI程序设计与图像处理基本操作

    Matlab学习笔记(3)-GUI程序设计与图像处理基本操作 一.GUI程序设计 如果想要开始使用Matlab进行GUI编程,首先需要进入Matlab的GUI界面对GUI有一个基本的认识. 1.gui ...

  9. 数字图像处理MATLAB学习笔记(一)

    数字图像处理MATLAB学习笔记(一) 灰度转换与空间滤波 本节主要使用Matlab语言进行灰度转换与空间滤波的使用 并对相关数学原理进行总结 1. Intensity Transformer Fun ...

  10. MATLAB学习笔记2:MATLAB基础知识(下)

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

最新文章

  1. 关于redis的几件小事(一)redis的使用目的与问题
  2. 安全访问服务边缘(SASE)是什么?
  3. LBP特征的理论介绍
  4. 转发:Datawhale第七期组队学习计划
  5. C++将类的构造函数、析构函数声明为private或者protected的用途
  6. Spring Boot集成Redis,这个坑把我害惨了!
  7. 丘处机《摄生消息论》(转)
  8. C++ Primer Plus 第一章 预备知识
  9. golang 切片追加问题
  10. 【敏捷开发每日一贴】代码走查
  11. Binder机制原理简述
  12. python机械臂写字_SCARA机器人 机械手臂 写字机 DIY 视觉识别
  13. 关于ARPG发展之操作和技能之泛泛而谈(转)
  14. 镜头焦距与拍摄距离以及拍摄范围的关系
  15. 网络计算机应急处理,国家计算机网络应急技术处理协调中心-计算机网络安全应急处理.ppt...
  16. python运行调出控制台_python控制台怎么打开
  17. Java程序员最全面的学习路线图
  18. CSS样式自动换行(强制换行)
  19. !=EOF的含义和原理
  20. ECG分析:基于深度学习的ECG心律失常分类入门(4)

热门文章

  1. Mac labelme安装及运行时崩溃bug解决
  2. 论坛文中前面加html,社区 论坛 美化帖子HTML基础代码 文字移动特效 及图片加字代码...
  3. PPT:一个PPT中怎么引入另一个PPT的源格式内容
  4. 激活函数的比较和优缺点,sigmoid,tanh,relu,softmax
  5. linux内核使用make编译出错,编译Linux内核出现错误:make vexpress_defconfig menuconfig...
  6. 美团优选前端面试经验分享
  7. 第2章(Java 的基本程序设计结构)
  8. dcloud IOS 网络不通问题
  9. 功率很高的硬盘坏道软修复方法
  10. web python 自动化是什么_Web自动化Selenium+Python系列之一自动化测试基础