数字图像处理
2021-6-1
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

图像的读取和展示

MATLAB能够处理的数字图像分为三种:二值图像灰度图像彩色图像.
notion image
  • 二值图像在MATLAB中以一个矩阵存储,矩阵中元素的取值为0(表示白)或1(表示黑).
    • notion image
  • 灰度图像在MATLAB中以一个矩阵存储,矩阵中元素的取值介于0~255之间,表示灰度.
    • notion image
  • 彩色图像在MATLAB中以三个矩阵存储,每个矩阵中元素的取值介于0~255之间,分别表示颜色R,G,B分量的浓度
    • notion image

读取和展示图像

使用imread()函数将图像读取到内存中,使用imshow()函数展示图像,使用imwrite()函数将内存中的图像写进硬盘.
notion image
使用imageinfo()函数查看图片文件的详细信息.
notion image
使用imtool()函数可以打开图像处理工具.
notion image
 
 

图像的运算

图像的点运算

图像在内存中以矩阵的形式存储,因此我们可以像遍历矩阵那样遍历并编辑图片上的像素点.MATLAB也内置了一些函数用于进行图像运算.

图像的四则运算

要对两个图像进行四则运算,要求这两个图像的尺寸相同.下面是常用的图像四则运算函数.
notion image
notion image
notion image
可以看到,进行加法操作后,得到的图像比原本的两个都亮,这是因为图像矩阵的数值整体上增加了.

像素的统计分布

使用imhist()函数可以分析像素值的统计分布.
notion image
使用histeq()可以增大图像的对比度,这本质上做了直方图的均衡化(Histogram Equalization)操作.
notion image

图像的二值化

将灰度图像变为二值图像的过程被称为二值化,MATLAB内置了两个与二值化相关的函数.
  • graythresh()函数用于计算二值化变换过程中的最优阈值(threshold).灰度图像上超过该阈值的点将被赋值为1,低于该阈值的点将被赋值为0.
  • im2bw()用于进行二值化变换.
notion image

图像的几何变换

图像的几何变换本质上就是将图像乘以一个矩阵得到新图像的过程
notion image
notion image
可以看到,进行旋转变换后,图像的尺寸增加了.
 
 

使用MATLAB分析图像:目标计数

我们想要通过MATLAB分析rice.png图片中米粒的个数.
notion image

图像预处理

要分析图像中的米粒个数,我们需要对图像进行两步预处理:
  1. 去除图像的背景:
    1. notion image
  1. 对图像进行二值化:
    下面代码展示了是否去除背景对图像二值化结果的影响:
    notion image

    目标计数:标记连通区域

    识别米粒个数的关键在于识别连通区域.
    notion image
    在这里,我们使用MATLAB自带的bwlabel()函数计算连通区域,该函数使用了连通区域标记算法,将每个连通区域内的像素点赋值为同一个值.
    notion image
    得到labeled为标记好的矩阵,其尺寸与原图片相同,每个连通区域都被赋值为一个相同的整数,其他区域被赋值为0.numObjects为计算出的连通区域个数,为99.
    使用label2rgb()函数可以将标记结果以彩色图片的形式展示
    notion image

    分析检测结果

    使用regionprops()函数可以将检测结果封装成结构体数组.
    使用bwselect()函数可以交互式选择连通区域
    notion image
  2. Matlab
  3. 线性方程式与线性系统拟合与插值
    目录