计算机视觉基础知识(二)---数字图像

像素

  • 像素是分辨率的单位;
  • 构成位图图像的最基本单元;
  • 每个像素都有自己的颜色;

图像分辨率

  • 单位英寸内的像素点数;
  • 单位为PPI(Pixels Per Inch),为像素每英寸;
  • PPI表示每英寸对角线上所拥有的像素数目:
  • ,x:长度像素数目,y:宽度像素数目,Z:屏幕大小;
  • 屏幕尺寸(大小)指的是对角线长度;
  • 图像清晰度的评价指标;

颜色模型

  • 色彩三原色(CMYK):品红,黄,青;
  • 光学三原色(RGB):红\绿\蓝;

RGB模型

  • 三维直角坐标颜色系统中的一个单位正方体;
  • 正方体的主对角线上,各原色的量相等;
  • 产生由暗到亮的白色,即灰度;
  • 正方体的其他六个角点分别为红\黄\绿\青\蓝\品红;

灰度

  • 表示图像像素明暗程度的数值;
  • 黑白图像中点的颜色深度;
  • 范围一般为0~255;
  • 白色为255,黑色为0;

通道

  • 把图像分解成一个或多个颜色成分;

单通道

  • 一个像素点只需一个数值表示;
  • 只能表示灰度;
  • 0为黑色,255为白色;
  • 可表示二值图/灰度图;

三通道

  • RGB模式;
  • 把图像分为红\绿\蓝三个通道;
  • 可以表示彩色;
  • 全0表示黑色;

四通道

  • RGBA模式;
  • 在RGB的基础上加上alpha通道,表示透明度;
  • alpha=0表示全透明;

对比度

  • 不同颜色之间的差别;
  • 对比度=最大灰度值/最小灰度值;

RGB转为Gray

  • 浮点算法:;
  • 整数算法::100:;
  • 移位算法:;
  • 平均值阀:;
  • 仅取绿色:;

RGB值转化为浮点数

  • 浮点运算结果更精确;
  • 整数运算中会丢失小数部分;
  • 导致颜色值严重失真;
  • 计算过程越多,失真越严重;
  • 将RGB值转化为[0,1]浮点数:x/255即可;

二值化

  • 阈值随意设置;
python 复制代码
if(img_gray[i,j]<=0.5):
    img_gray[i,j]=0
else:
    img_gray[i,j]=1

通用概念(库的安装和使用)

  • 使用pip或者conda安装;
  • 百度搜索python 安装xxx;
  • 得到库的名称;
  • 使用的时候用import引入;
  • 不需要死记硬背函数;
  • 需要使用的时候搜索函数名;
  • 可了解函数用法和参数含义;

常用视觉库

  • opencv:安装使用pip install opencv-python,使用时:import cv2
  • matplotlib:安装使用pip install matplotlib,使用时:import matplotlib.pyplot as plt
  • skimage:安装使用pip install scikit-image,使用时:import skimage;

opencv BGR

  • opencv读进来的图片通道排列:B--G--R;
  • 不是主流的R--G--B;
python 复制代码
#opencv读入的矩阵时BGR,想转为RGB,可以这样:
img=cv2.imread('1.jpg')
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

图像频率

  • 灰度值变化剧烈程度的指标;
  • 是灰度在平面空间上的梯度;

图像幅值

  • 在一个周期内;
  • 交流电瞬时出现的最大绝对值;
  • 也是一个正弦波;波峰到波谷距离的一半;

数字图像

  • 计算机保存的图像都是一个个像素点,称为数字图像;

图像数字化过程

  • 由图像的取样与量化来完成;

图像的取样

  • 取样就是决定用多少点来描述一幅图像;
  • 取样结果质量的好坏用图像的分辨率来衡量;
  • 数字化坐标值称为取样;
  • 若横向的像素数(列数)为M,纵向的像素数(行数)为N;
  • 图像的总像素数为MxN个像素;

图像的量化

  • 指要用多大范围的数值表示图像采样之后的一个点;
  • 数字化图像的幅度值称为量化;

上采样

  • 放大图像,或称上采样:upsampling或图像插值:interpolating;
  • 放大原图像;
  • 可将图像显示在更高分辨率的显示设备上;

下采样

  • 缩小图像,或称下采样:subsampled,或降采样:downsampled;
  • 使图像符合显示区域的大小;
  • 生成对应图像的缩率图;

上采样原理

  • 内插值

下采样原理

常用的插值方法

  • 最临近插值;
  • 单线性插值;
  • 双线性插值;

最临近插值

  • The nearest interpolation;
  • i+u,j+v为待求像素坐标;
  • i,j为整数,u,v为大于零小于1的小数;
  • 待求像素灰度值表示为f(i+u,j+v);

单线性插值

双线性插值

​​​​​​​ ​​​​​​​

​​​​​​​ ​​​​​​​ ​​​​​​​

  • 在x方向做插值:
  • 在y方向作插值:
  • 综合起来
  • 图像双线性插值只用相邻的4个点,上述公式的分母都为1;

双线性插值坐标系的选择

  • dst像素点的坐标对应到src图像当中的坐标;
  • 通过双线性插值的方法算出src中相应坐标的像素值;

坐标对应关系

  • 按比例对应:

源图像和目标图像的左上角对齐

  • 如果源图像和目标图像的原点(0,0)均选择左上角;
  • 根据插值公式计算目标图像每点像素;
  • 假设需要将一幅5x5图像缩小为3x3;
  • 源图像和目标图像各像素之间的对应关系如下图:

源图像和目标图像的中心对齐

  • 两个图像的几何中心重合;
  • 目标图像的每个像素之间等间隔;
  • 目标图像的四边和源图像都有一定的边距;

源图像和目标图像中心对齐平移参数的证明

双线性插值存在的问题

  • 双线新插值较最临近插值算法复杂;
  • 计算量较大;
  • 但是没有灰度不连续的缺点;
  • 图像看起来更光滑;

直方图

  • 图像处理中,经常用到直方图:如颜色直方图,灰度直方图;
  • 灰度直方图描述了图像中灰度分布的情况;
  • 能够直观展示图像中各灰度级所占比例;
  • 灰度直方图是灰度级的函数;
  • 描述图像中该灰度级的像素的个数;
  • 直方图中横坐标是灰度级;
  • 纵坐标是该灰度级出现的频率;

直方图的性质

  • 反映图像中的灰度分布规律;
  • 描述每个灰度级具有的像素个数;
  • 不包含像素在图像中的位置信息;
  • 不关心像素所处的空间位置;
  • 不受图像旋转和平移变化的影响;
  • 可以作为图像的特征;
  • 任何图像都有唯一的直方图对应;
  • 不同的图像可以有相同的直方图;
  • 如果一幅图像有两个不相连的区域组成;
  • 每个区域的直方图已知;
  • 整幅图像的直方图是该两个区域的直方图之和;

直方图的应用

直方图均衡化

  • 将源图像的直方图变换为均匀的直方图;
  • 按均匀直方图修改原图像;
  • 获得灰度分布均匀的新图像;
  • 是用一定的算法使直方图大致平和的方法;
  • 作用是图像增强;

直方图均衡化的应用考虑

  • 为了将原图像的亮度范围扩展;
  • 需要一个映射函数;
  • 将原图像的像素值均衡映射到新直方图中;
  • 映射函数需要满足:
  • 不打乱原有的亮暗布局;
  • 映射后亮\暗的关系不改变;
  • 且映射后必须在原有的范围内,比如(0-255);

直方图均衡化的步骤

  1. 依次扫描原始灰度图像的每一个像素;
  2. 计算出图像的灰度直方图H;
  3. 计算灰度直方图的累加直方图;
  4. 根据累加直方图和直方图均衡化的原理;
  5. 得出输入与输出之间的映射关系;
  6. 最后根据映射关系得出结果:

直方图均衡化的计算原理

  • 输入图像的任意一个像素p,;
  • 总能在输出图像中有对应的像素q,;
  • 满足输入和输出的像素总量相等;
  • 计算公式为(累加直方图公式):
  • 输出图像每个灰度级的个数为:
  • 代入累加直方图公式:

直方图均衡化实例

  • 原图像矩阵,image:5x5,最大像素值max=9,最小像素值min=0;

|---|---|---|---|---|
| 1 | 3 | 9 | 9 | 8 |
| 2 | 1 | 3 | 7 | 3 |
| 3 | 6 | 0 | 6 | 4 |
| 6 | 8 | 2 | 0 | 5 |
| 2 | 9 | 2 | 6 | 0 |

  • 直方图均衡化计算表格:

|-----|-------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|-------|
| 像素值 | 该像素 值数量 | 该像素值占图片 总像素值数量百分比: | 百分比 加合 | | 四舍 五入 |
| 0 | 3 | 3/25=0.12 | 0.12 | 29.72 | 30 |
| 1 | 2 | 2/25=0.08 | 0.2 | 50.2 | 50 |
| 2 | 4 | 0.16 | 0.36 | 91.16 | 91 |
| 3 | 4 | 0.16 | 0.52 | 132.12 | 132 |
| 4 | 1 | 0.04 | 0.56 | 142.36 | 142 |
| 5 | 1 | 0.04 | 0.6 | 152.6 | 153 |
| 6 | 4 | 0.16 | 0.76 | 193.56 | 194 |
| 7 | 1 | 0.04 | 0.8 | 203.8 | 204 |
| 8 | 2 | 0.08 | 0.88 | 224.28 | 224 |
| 9 | 3 | 0.12 | 1 | 255 | 255 |

  • 目标图像矩阵

|-----|-----|-----|-----|-----|
| 50 | 132 | 255 | 255 | 224 |
| 91 | 50 | 132 | 204 | 132 |
| 132 | 194 | 30 | 194 | 142 |
| 194 | 224 | 91 | 30 | 153 |
| 92 | 255 | 91 | 194 | 30 |

线性滤波

  • 是图像处理的最基本方法;
  • 允许对图像进行处理,产生很多不同效果;

卷积

  • 数学定义:;
  • g称为作用在f上的过滤器(filter)或者核(kernel);

过滤器/卷积核的要求

  • 大小应为奇数;
  • 奇数才有一个中心,比如3x3,5x5或者7x7;
  • 有中心才有半径,比如,5x5的核半径为2;
  • 滤波器矩阵所有元素之和应该等于1;
  • 这样的核保证滤波前后图像的亮度保持不变;
  • 但不是硬性要求;
  • 如果滤波器所有矩阵的元素之和大于1;
  • 滤波后的图像会比原图像更亮;
  • 如果滤波器所有矩阵元素之和小于1;
  • 滤波后的图像会比原图像更暗;
  • 如果滤波器矩阵的所有元素和为0;
  • 图像不会变黑,但会非常暗;
  • 滤波后的图像像素值可能会出现负数或者大于255的情况;
  • 大于255的直接截断;
  • 负数取绝对值;
  • 具体应用中的多卷积核;
  • 认为每个卷积核代表一种图像模式;
  • 图像与卷积核卷积出的值较大,说明图像值接近卷积核;
  • 假设我们设计了6个卷积核;
  • 可以理解,我们认为该图像上有6种底层纹理模式;
  • 也就是我们使用6种基础模式能描绘一幅图像;

没有任何效果的卷积

|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |

  • 原像素中间像素值乘1;
  • 其余像素全部乘以0;
  • 像素值不会发生任何变化;

平划均值滤波

|-----|-----|-----|
| 1/9 | 1/9 | 1/9 |
| 1/9 | 1/9 | 1/9 |
| 1/9 | 1/9 | 1/9 |

  • 取九个值的平均值代替中间像素值;
  • 可以起到平滑的效果;

高斯平滑

|------|------|------|
| 1/16 | 2/16 | 1/16 |
| 2/16 | 2/16 | 2/16 |
| 1/16 | 2/16 | 1/16 |

  • 高斯平滑水平和垂直方向呈现高斯分布;
  • 突出了中心点在像素平滑后的权重;
  • 相较于均值滤波,有更好的平滑效果;

图像锐化

|----|----|----|
| -1 | -1 | -1 |
| -1 | 9 | -1 |
| -1 | -1 | -1 |

|----|----|----|
| 0 | -1 | 0 |
| -1 | 5 | -1 |
| 0 | -1 | 0 |

  • 图像锐化使用拉普拉斯变换核函数;

边缘检测

,

  • 使用卷积上图;
  • 会在图像中间黑白边界处获得比较大的值;

Sobel边缘检测

  • 水平梯度卷积核

|----|---|---|
| -1 | 0 | 1 |
| -2 | 0 | 2 |
| -1 | 0 | 1 |

  • 垂直梯度卷积核

|----|----|----|
| -1 | -2 | -1 |
| 0 | 0 | 0 |
| 1 | 2 | 1 |

  • Sobel更强调和边缘相邻的像素点对边缘的影响;

卷积解决的问题

  • 卷积负责提取图像中的局部特征

卷积--步长/stride

  • 卷积核的尺寸;
  • 图片的尺寸;
  • 用卷积核来卷积图片;
  • 每次移动一个像素;
  • 输出结果的尺寸为:;
  • 如果每次移动不止一个像素,而是s个;
  • 输出结果的尺寸为:;
  • s称为卷积步长/stride;
  • 如果f或s的值比1大;
  • 每次卷积之后结果的长宽,比卷积前小一些;
  • 会丢失信息;

填充/padding

  • 填充后,做卷积后的图像大小:
  • 如果想让高(宽)不变:
  • 假设步长s=1:

三种填充模式

  • 橙色部分为图像/image;
  • 蓝色部分为Filter/过滤器;
  • 三种填充模式分别是full/same/valid;
  • 从filter和image刚相交开始做卷积.
  • filter中心(k)与image的边角重合,开始卷积;
  • filter全部在image内部时,开始卷积.

  • same还有另外一个意思;
  • 卷积后输出的feature map尺寸保持不变(相对于输入图片);
  • same模式不代表完全输入输出尺寸一样;
  • 同卷积核的步长有关系;
  • same模式是最常见的模式;
  • 该模式可以在卷积过程中保持图像大小不变;

三通道卷积

卷积核的确定

  • CNN的厉害在于:
  • 过滤器的特征不是人为设定;
  • 而是通过大量图片自己训练出来的;
相关推荐
Topstip几秒前
iOS 19 重大更新泄露,将带来更“聪明”的 Siri 挑战 ChatGPT
人工智能·ios·ai·chatgpt
Nerinic14 分钟前
深度学习基础1
人工智能·深度学习
数字扫地僧20 分钟前
深度学习与知识图谱嵌入的结合:从理论到实践
人工智能·深度学习·知识图谱
真理Eternal26 分钟前
手搓人工智能—聚类分析(下)谱系聚类与K-mean聚类
人工智能·机器学习
ZOMI酱32 分钟前
【AI系统】昇腾 AI 架构介绍
人工智能·架构
说私域1 小时前
精准零售驱动下的中国零售业变革与“开源 2+1 链动小程序”应用探究
人工智能·小程序·开源
AI视觉网奇1 小时前
WonderJourney 学习笔记
人工智能
钢铁男儿1 小时前
图像分割——区域增长
图像处理·人工智能·计算机视觉
敏编程1 小时前
用文字“画出”状态图:用 AI+Mermaid.js 解决对象状态变化的处理问题
人工智能·mermaid
CodeIsCoding1 小时前
鱼眼相机模型-MEI
人工智能·opencv·计算机视觉·相机