本文主要记录利用MATLAB图像处理的学习笔记。

1.图像处理的流程:

导入影像,预处理,影像分割,后处理,分类。

2.如果导入图像是彩色图像,计算影像size:

size包括图像的行数、列数和第三个维度用来存储RGB,即:

可以通过索引到第三维访问图像的单个颜色平面,如1作为第三个索引来提取红色,2提取绿色,3提取蓝色。
Ig = I(:,:,1); %红
Ig = I(:,:,2);%绿
Ig = I(:,:,3);%蓝

3.大多数图像使用无符号8位整数(uint8)数据类型,它存储从0到255的整数。
利用max函数查找所有元素的最大值:

M = max(A,[],'all') %找出A中所有元素的最大值。

4.imsplit()函数:将多通道图像分割成单独的通道.
用法:[c1,c2,c3,…,ck] = imsplit(I)
返回k个图像的集合,代表k通道图像I中的单个通道。

5.为什么RGB影像要转换成灰度影像
(1)当载入内存时,灰度图像占RGB图像所需空间的三分之一。
(2)由于灰度图像具有三分之一的数据,它需要更少的计算能力,可以减少计算时间。
(3)灰度图像在概念上比RGB图像简单,因此在处理灰度图像时,开发图像处理算法可以更直接。

RGB planes:Height * Width * 3(多一维度用于存储RGB信息)
Grayscale:Height * Width

6.利用im2gray()函数将彩色影像RGB转换成灰度影像Grayscale。
Ags = im2gray(A)
由im2gray创建的灰度图像是一个由强度值组成的单一平面。im2gray函数将RGB值转换为灰度值,将R、G、B分量加权和:

7.Contrast and Intensity Histograms 对比度和直方图
强度直方图根据像素的强度值将其分离到多个容器中。例如,深色图像在直方图的低端有许多像素。明亮区域的像素被收纳在直方图的高端。

imhist(A) 生成直方图;
imadjust(A)可以调整图像,增强对比度;imadjust函数一般只对灰度影像有效,除非引入其他参数。

imlocalbrighten():增强low-light影像,效果如下图:

【注】:图片来自MATLAB帮助文档

8.小结:
imread 读入影像
imshow 显示影像
size 计算影像大小
imhist 绘制影像直方图(灰度)
imadjust 调整灰度影像的亮度或彩色影像的颜色矩阵。

9.Image Viewer app 影像预处理工具
使用方法:
(1)输入imtool;

(2)下载Image Processing Toolbox;
(3)在APP菜单栏搜索 Image Viewer;

可以打开影像,查看像元属性信息、调整对比度等。

10.影像分割Segmenting
影像分割:将一幅图像分割成不同的部分称为图像分割。
(1)使用逻辑运算符为影像定义阈值+直方图
强度阈值(Intensity Thresholding):通过设置阈值,将目标类设为1,背景设为0.

设置阈值代码:

img1 = imread("IMG_004.jpg"); %导入影像
gs1 = im2gray(img1); %转换成灰度影像
gsAdj1 = imadjust(gs1); %对灰度影像进行亮度处理
imhist(gsAdj1) %绘制直方图,通过直方图进行阈值判断
BW1 = gsAdj1 >175; %设置阈值
imshowpair(img1,BW1,'montage') %显示图像

(2)自动选择阈值
利用imbinarize 函数可以自动选择阈值。
用法:

BW= imbinarize(I);%默认情况下,imbinized使用一个全局阈值-图像中的每个像素都使用相同的阈值。
BW = imbinarize(I,method) %creates a binary image from image I using the thresholding method specified by method: 'global' or 'adaptive'.

一般自选的阈值比通过直方图手动选取的阈值效果要差。

imbinarize函数还有一种用法,可以通过设置参数,调整前景与后景的亮度。一般默认情况下,影像的前景是亮的(bright),背景是暗的(dark)。

BW = imbinarize(I,'adaptive',Name,Value);
BW = imbinarize(I,'adaptive',"ForegroundPolarity","dark");%设置前景是暗的


11. sum函数
sum函数用于计算数组元素的总和。
用法:

S = sum(A,dim)

S = sum(A,dim)返回沿dim维度的和。例如,如果A是一个矩阵,那么sum(A,2)是一个列向量,包含每一行的和;sum(A,1)是一个行向量,包含每一列的和。

12. plot函数
用法1:

plot(Y)%创建Y中的数据与每个值的索引的二维线图。

如果Y是一个向量,那么x轴缩放范围从1到长度(Y)。
如果Y是一个矩阵,那么plot函数画出Y的列与行号的关系。x轴的刻度范围从1到Y的行数。
如果Y是复数,那么plot函数将绘制Y的虚部与Y的实部,这样plot(Y)等价于plot(real(Y),imag(Y))。

13.提高分割精度
可以通过两种方式来改进分割:在二值化前对图像进行预处理,以及对二值化图像本身进行后处理。主要技术包括:去噪处理、背景隔离和减法、二值形态学。

(1)去噪处理:Noise Removal

  • 平滑像素强度值,以减少变化对二值化的影响。

(2)背景隔离和减法:Background Isolation and Subtraction

  • 在二值化之前隔离并去除图像的背景。

(3)二值形态学:Binary Morphology

  • 在二值图像中强调特定的模式或形状。

14.spatial filter空间滤波
利用滤波器对影像进行平滑处理,滤波器filter是一个矩阵(类似mask)。在影像中放入一个filter时,会创建一个window。

线性滤波:
线性滤波器的原始数据与滤波结果是一种算术运算,即用加减乘除等运算实现,如均值滤波器、高斯滤波器等。

非线性滤波:
非线性滤波器的原始数据与滤波结果是一种逻辑关系,也就是用逻辑运算来实现的,比如最大值滤波器、最小值滤波器、中值滤波器等,是通过比较一定邻域内的灰度值大小来实现的。

  1. fspecial函数用于创建滤波器
    用法:
h = fspecial("average",n) %创建n*n的平均滤波器

16.imfilter函数
对影像进行滤波处理:

B = imfilter(A,h)

MATLAB 图像处理基础(1)相关推荐

  1. Matlab图像处理基础(1):图像表示,点处理

    目录 0. 概要 1. 图像表示 Image Representation 1.1 图像格式 Image format 1.2 图像分辨率 resolution of image 1.3 图像的编码 ...

  2. 数字图像处理:实验一 MATLAB 图像处理基础

    实验一 MATLAB 图像处理基础 MATLAB 具有强大的图像处理工具箱,有助于人们更好的理解各种图像处理算法,通 过调用工具箱中的函数,可以减少编程的复杂性,简化编程.本次实验主要掌握 MATLA ...

  3. Matlab图像处理基础(2):区域处理,边沿检测

    目录 0. 概要 2. 卷积和相关 2.1 卷积 2.2 相关 2.3 卷积与相关的关系 2.4 Matlab函数 2.5 2-D卷积/相关的分解 3. 高通滤波,edge detection 3.1 ...

  4. matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础

    <数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...

  5. matlab --- 图像处理基础

    MATLAB图像处理 1. 数字图像处理 参考 数字图像处理(Digital Image Processing)又称为计算机图像处理,是一种将图像信号数字化利用计算进行处理的过程.随着计算机科学.电子 ...

  6. 1.MATLAB图像处理基础知识

    更多MATLAB图像处理视频请点击  http://study.163.com/course/courseMain.htm?courseId=1003594013 在MATLAB中,基本数据结构为数列 ...

  7. MATLAB基础--MATLAB图像处理基础

    图像类型的转换 RGB图像转换为灰度图像 I=imread('football.jpg'); X=rgb2gray(I); figure; subplot(121),imshow(I); subplo ...

  8. 数学建模--MATLAB图像处理基础

    平时把基础知识学一下,比赛的时候深入学一下就可以用了. 图像类型的转换 基础知识 数字图像(计算机图像处理):将图像信号数字化后利用计算机进行处理的过程. 图像的表示方法是对图像处理算法描述和利用计算 ...

  9. 图像处理基础知识及matlab,MATLAB图像处理基础知识

    1.MATLAB支持的图像文件格式 (1)JPEG(Joint Photographic Experts Group):一种称为联合图像专家组的图像压缩格式. (2)BMP(Windows Bitma ...

  10. matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...

    需求说明:图像处理FPGA实现前期算法准备 当前算法:已通过matlab验证成功 function scaler_bilinear() %-----------------------------0: ...

最新文章

  1. 如何通过结构化智能体完成物理构造任务?| 技术头条
  2. [HNOI2008]玩具装箱toy
  3. 菜鸟教程python3 mysql_MySQL 教程
  4. Class Imbalance Problem
  5. .NET点滴:SpanT
  6. Map 的Properties集合存储IO流对象
  7. MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)
  8. 【Gym - 101775J】Straight Master(差分,思维)
  9. java 文件目录_Java——文件及目录File操作
  10. python中casefold()函数的用法
  11. hadoop 查看集群的网页监控状态
  12. tableau 日周月筛选器_【数据可视化】Tableau教程(六)日历热力图
  13. 北京联合大学计算机学院在哪个校区,2021年北京联合大学有几个校区,大一新生在哪个校区...
  14. 安搭Share:2020年前三季度,金融部门杠杆率保持稳定
  15. Improved Techniques for Training GANs翻译与理解
  16. python图片拼接成特定图案_Python 把几张图片拼接成一张图片,并且写上文字
  17. conductor介绍
  18. 社会保险法相关知识--调基
  19. 中外合作办学计算机科学与技术有哪些大学,校友会2017中外合作办学大学计算机科学与技术专业排行榜...
  20. SpringBoot访问静态资源

热门文章

  1. 在mysql中字符串的操作_mysql中的字符串操作.doc
  2. (day 27 - 递归分治 )剑指 Offer 33. 二叉搜索树的后序遍历序列
  3. redis数据类型-字符串
  4. mysql碎片处理_mysql优化数据库和mysql数据库碎片处理
  5. ElemengUI:轮播图组件高度设置为全屏
  6. Javascript:关闭当前界面
  7. Javascript特效:字体背景跑马灯
  8. FFmpeg学习(8)—— 视频去水印
  9. 使用JMH做Java微基准测试(四)默认状态测试
  10. 系统管理_ubuntu出现只读文件系统时