传统图像处理面试题




目录
传统图像处理-最常见面试题(必问).......................................................1
1.图像预处理有哪些方法?.....................................................................1
1.1 高斯滤波器原理介绍?................................................................1
2.图像增强有哪些方法?........................................................................2
3.图像的特征提取有哪些算法?...............................................................2
3.1 HOG(方向梯度直方图).............................................................2
3.2 SIFT(尺度不变特征变换)..........................................................2
3.3 SURF(加速稳健特征,对 sift 的改进)........................................3
3.4 DOG(高斯函数差分)..................................................................3
3.5 LBP(局部二值模式).................................................................3
3.6 HAAR......................................................................................3
3.7 SIFT vs HOG..........................................................................3
4.膨胀和腐蚀含义?开运算和闭运算先后顺序?..........................................3
5.传统的边缘检测算子有哪些?...............................................................5
5.1 索贝尔算子(Sobel)................................................................5
5.2 加权平均算子(Isotropic Sobel)..............................................6
5.3 罗伯茨算子(Roberts).............................................................6
5.4 Prewitt 算子.............................................................................6
5.5 拉普拉斯算子(Laplacian)......................................................6
5.6 Canny 算子.............................................................................. 7
5.6.1 Canny 如何极大值抑制?...................................................7
6.直方图是什么?..................................................................................7
7.直方图的均衡化..................................................................................8
8.如何对图像进行 90 度旋转?................................................................8
9.数据增强怎么处理的?........................................................................9
9.1 几何变换...................................................................................9
9.2 颜色变换...................................................................................9
9.3 多个区域置零............................................................................9
9.4 多张图片增强............................................................................9
10.图像处理基本算法.............................................................................9
传统图像处理-最常见面试题(必问)
1.图像预处理有哪些方法?
1 平均滤波 2 中值滤波 3 高斯滤波 4 高斯金字塔 5 拉普拉
斯滤波 6 直方图均衡化 7 CHE
1.1 高斯滤波器原理介绍?
高斯滤波对于抑制服从正态分布的噪声效果非常好,其代价是使图
像变得“模糊”。
高斯滤波器最重要的参数就是高斯分布的标准差 σ,σ 越大,高斯
滤波器的频带就较宽,对图像的平滑程度就越好。通过调节 σ 参数,
可以平衡对图像的噪声的抑制和对图像的模糊。
高斯滤波的模板是用高斯公式计算出来的:
计算过程:
1.利用邻域内其他像素点到邻域中心的距离,带入二维高斯函数,
计算出高斯模板,常见 3×3 或 5×5 大小的高斯模板。
2.若模板为小数形式,进行归一化处理,将模板左上角值归一为
1。
3.将高斯模板的中心对准待处理的图像矩阵,然后对应元素相乘后
相加,没有元素的地方补零
(例如 3×3 高斯模板,需要对待处理图像最外层补一圈零)。
4.每个元素分别进行上述计算,得到的输出矩阵就是高斯滤波的结
果。
2.图像增强有哪些方法?
1.对比度拉升:采用了线性函数对图像的灰度值进行变换
2.Gamma 校正:采用了非线性函数(指数函数)对图像的灰度值进
行变换
3.直方图均衡化
将原始图像的直方图通过积分概率密度函数转化为概率密度为 1
(理想情况)的图像,从而达到提高对比度的作用。
直方图均衡化的实质也是一种特定区域的展宽,但是会导致整个图
像向亮的区域变换。当原始图像给定时,对应的直方图均衡化的效
果也相应的确定了。
4.直方图规定化
5.同态滤波器
3.图像的特征提取有哪些算法?
3.1 HOG(方向梯度直方图)
3.2 SIFT(尺度不变特征变换)
SIFT:
主要步骤
1)、尺度空间的生成;
2)、检测尺度空间极值点;
3)、精确定位极值点;
4)、为每个关键点指定方向参数;
5)、关键点描述子的生成。
3.3 SURF(加速稳健特征,对 sift 的改进)
3.4 DOG(高斯函数差分)
3.5 LBP(局部二值模式)
3.6 HAAR
Haar 特征分为三类:边缘特征、线性特征、中心特征和对角线特
征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义
该模板的特征值为白色矩形像素之和减去黑色矩形像素之和。Haar
特征值反映了图像的灰度变化情况。 如:眼睛要比脸颊颜色要深,
鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。
在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。
SIFT 所查找到的关键点是一些十分突出、不会因光照、仿射变换和
噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗
点等。
3.7 SIFT vs HOG
共同点:都是基于图像中梯度方向直方图的特征提取方法
不同点:
SIFT 提取的关键点是角点(是角点+梯度直方图),HOG 提取的
是边缘特征。
SIFT 特征通常与使用 SIFT 检测器得到的兴趣点一起使用。这些兴
趣点与一个特定的方向和尺度相关联。通常是在对一个图像中的方
形区域通过相应的方向和尺度变换后,再计算该区域的 SIFT 特征。
结合 SIFT 和 HOG 方法,可以发现 SIFT 对于复杂环境下物体的特
征提取具有良好的特性;而 HOG 对于刚性物体的特征提取具有良
好的特性。
4.膨胀和腐蚀含义?开运算和闭运算先后顺序?
膨胀:指使用卷积核 B(可以理解为模板)对图像 A(或者某部分
区域)进行卷积操作,卷积核可以是任意形状或大小。膨胀是求局
部最大值的操作。
当卷积核 B(模板)扫描图像 A 与其进行卷积操作时,计算模板 B
覆盖的区域的最大值并将最大值赋给模板的参考点。因为图像中亮
点的灰度值大,所以膨胀操作会使得图像中的高亮区域逐渐增长。
腐蚀:是膨胀的反操作,腐蚀计算的是局部区域的最小值。将卷积
核 B 与图像 A 进行卷积,将 B 所覆盖区域的最小值赋给参考点。腐
蚀操作会使得图像中亮的区域变小,暗的区域变大。
开操作
● 开操作是指:先腐蚀,在膨胀。
● 开操作可以移除较小的明亮区域、在较细的地方分离物体。
● 应用例子:通过开操作将阈值处理后的细胞分离,可以更清晰地
统计细胞数目
闭操作
● 闭操作是指:先膨胀,再腐蚀。
● 闭操作可以填充物体内的细小空洞、连接邻近的明亮物体。
5.传统的边缘检测算子有哪些?
5.1 索贝尔算子(Sobel)
是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值,
Sobel 算子是典型的基于一阶导数的边缘检测算子,由于该算子中
引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的
消除噪声的影响。Sobel 算子对于像素的位置的影响做了加权,与
Prewitt 算子、Roberts 算子相比因此效果更好。
Sobel 算子包含两组 3x3 的矩阵,分别为横向及纵向模板,将之与
图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。实
际使用中,常用如下两个模板来检测图像边缘。
图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,
来计算梯度的大小。
然后可用以下公式计算梯度方向。
若 Θ = 0,即代表图像该处拥有纵向边缘,左方较右方暗
缺点:Sobel 并没有将图像的主题与背景严格地区分开来,也就是
没有基于图像灰度进行处理;由于没有严格地模拟人的视觉生理特
征,所以提取的图像轮廓有时并不能令人满意。
5.2 加权平均算子(Isotropic Sobel)
权值反比于邻点与中心点的距离,当沿不同方向检测边缘时梯度幅
度一致,就是通常所说的各向同性 Sobel(Isotropic Sobel)算子。
模板也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿
的 。各向同性 Sobel 算子和普通 Sobel 算子相比,它的位置加权
系数更为准确,在检测不同方向的边沿时梯度的幅度一致。
5.3 罗伯茨算子(Roberts)
是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子,
他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂
直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪
声的影响。
Roberts 边缘算子是一个 2x2 的模板,采用的是对角方向相邻的两
个像素之差。
5.4 Prewitt 算子
是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰
度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有
平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域
卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直
边缘
5.5 拉普拉斯算子(Laplacian)
是一种各向同性算子,二阶微分算子,在只关心边缘的位置而不考
虑其周围的象素灰度差值时比较合适。Laplace 算子对孤立象素的
响应要比对边缘或线的响应要更强烈,因此只适用于无噪声图象。
存在噪声情况下,使用 Laplacian 算子检测边缘之前需要先进行低
通滤波。所以,通常的分割算法都是把 Laplacian 算子和平滑算子
结合起来生成一个新的模板。
一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义了
更适合于数字图像处理,将拉式算子表示为离散形式:
两步
1)先 cv.Laplacian(image, cv.CV_16S, ksize=3)
2)再 cv.convertScaleAbs(Laplacian) 即可
5.6 Canny 算子
优于前面几种算法,实现麻烦,是一个具有滤波,增强,检测的多
阶段的优化算子,在进行处理前,Canny 算子先利用高斯平滑滤波
器来平滑图像以除去噪声,Canny 分割算法采用一阶偏导的有限差
分来计算梯度幅值和方向,在处理过程中,Canny 算子还将经过一
个非极大值抑制的过程,最后 Canny 算子还采用两个阈值来连接边
缘。
step1: 用高斯滤波器平滑图像;
step2: 用一阶偏导的有限差分来计算梯度的幅值和方向;
step3: 对梯度幅值进行非极大值抑制
step4: 用双阈值算法检测和连接边缘(双阈值筛选)
5.6.1 Canny 如何极大值抑制?
通常灰度变化的地方都比较集中,将局部范围内的梯度方向上,灰
度变化最大的保留下来,其它的不保留,这样可以剔除掉一大部分
的点。将有多个像素宽的边缘变成一个单像素宽的边缘。即“胖边
缘”变成“瘦边缘”。
Canny 算子中的非极大值抑制是沿着梯度方向进行的,即是否为梯
度方向上的极值点;而在角点检测等场景下说的非极大值抑制,则
是检测中心点处的值是否是某一个邻域内的最大值,是,则保留,
否则去除,这种情况下的非极大值抑制比较简单。
6.直方图是什么?
是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度
值的像素数;横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、
纯白的区域。
7.直方图的均衡化
目的:将原始图像的灰度级均匀的映射到整个灰度级范围内,得到
一个灰度级均匀的图像。
实现方法:将该灰度级出来的概率累计之前灰度级的概率之和,然
后乘以最大灰度值,所得即为均衡化图像。
8.如何对图像进行 90 度旋转?
img = cv2.imread("./data/hig.jpg")
out=cv2.transpose(img)
out=cv2.flip(out,flipCode=0) # 0:左旋转 | 1:右旋转
9.数据增强怎么处理的?
9.1 几何变换
flip:水平翻转,也叫镜像;垂直翻转
rotation:图片旋转一定的角度,这个可以通过 opencv 来操
作,各个框架也有自己的算子
crop:随机裁剪,比如说,在 ImageNet 中可以将输入图片
进行裁剪,然后输入。
9.2 颜色变换
hue:灰度调节
contrast:在图像的 HSV 颜色空间,改变 H,S 和 V 亮度分
量,增加光照变化。对光照有特殊要求的可以使用
saturation:图像饱和度 exposure:增加曝光
9.3 多个区域置零
random erase:随机擦除,将图片中的某个区域置零
CutOut:和 random erase 差不多,都是将图片中某个区域
擦除
hide-and-seek:将图片分为 k*k 的网格,每个网格已一定概
率的方式擦除,和 random erase、CutOut 差不多。
grid mask:首先准备一个 mask,mask 非零即一,将 mask
和图片相乘,这样就会擦除很多区域了。
9.4 多张图片增强
MixUp:两张图片,经过对应位置,经过线性插值,组成一张新的
照片
CutMix:就是将一部分区域 cut 掉但不填充 0 像素而是随机填充
训练集中的其他数据的区域像素值,分类结果按一定的比例分配。
图像旋转之后的空洞怎么补齐? 最邻近插值,双线性插值
10.图像处理基本算法
图像平滑
图像滤波算法
模型匹配
Blob 分析