欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Opencv面试指南

时间:2023-05-23

跟随这位大神的步伐学,做补充图像处理-最常见面试题(必问)_聪哥965-CSDN博客_图像处理面试题

1.图像预处理有哪些方法?


  1 平均滤波

  2 中值滤波

  3 高斯滤波

   4 高斯金字塔

   5 拉普拉斯滤波

  6 直方图均衡化



1.1 高斯滤波器原理介绍?

Opencv 笔记3 图像平滑_Σίσυφος1900的博客-CSDN博客
高斯滤波对于抑制服从正态分布的噪声效果非常好,其代价是使图像变得“模糊”。
高斯滤波器最重要的参数就是高斯分布的标准差σ,σ越大,高斯滤波器的频带就较宽,对图像的平滑程度就越好。通过调节σ参数,可以平衡对图像的噪声的抑制和对图像的模糊。
高斯滤波的模板是用高斯公式计算出来的:

计算过程:
1.利用邻域内其他像素点到邻域中心的距离,带入二维高斯函数,计算出高斯模板,常见3×3或5×5大小的高斯模板。
2.若模板为小数形式,进行归一化处理,将模板左上角值归一为1。
3.将高斯模板的中心对准待处理的图像矩阵,然后对应元素相乘后相加,没有元素的地方补零
(例如3×3高斯模板,需要对待处理图像最外层补一圈零)。
4.每个元素分别进行上述计算,得到的输出矩阵就是高斯滤波的结果。

2.图像增强有哪些方法?

OPencv 图像增强的案例_Σίσυφος1900的博客-CSDN博客

1.对比度拉升:采用了线性函数对图像的灰度值进行变换2.Gamma校正:采用了非线性函数(指数函数)对图像的灰度值进行变换3.直方图均衡化将原始图像的直方图通过积分概率密度函数转化为概率密度为1(理想情况)的图像,从而达到提高对比度的作用。直方图均衡化的实质也是一种特定区域的展宽,但是会导致整个图像向亮的区域变换。当原始图像给定时,对应的直方图均衡化的效果也相应的确定了。4.直方图规定化5.同态滤波器

https://blog.csdn.net/weixin_39354845/article/details/122903403
直方图均衡化、Laplace、Log、Gamma


3.图像的特征提取有哪些算法?


3.1 HOG(方向梯度直方图)
3.2 SIFT(尺度不变特征变换)
SIFT:opencv 特征提取 -SIFT_Σίσυφος1900的博客-CSDN博客
主要步骤   
  1)、尺度空间的生成;
     2)、检测尺度空间极值点;
  3)、精确定位极值点,消除边缘响应,并剔除对比度低的点;
  4)、为每个关键点指定方向参数;
  5)、关键点描述子的生成。

3.3 SURF(加速稳健特征,对sift的改进)
3.4 DOG(高斯函数差分)

为了在尺度空间中找到稳定不变的极值点,在SIFT算法中使用了高斯差分(DOG)函数D(x,y,σ),定义为

其中 kσ和 σ是连续的两个图像的平滑尺度,所得到的差分图像再高斯差分金字塔中。 

选择高斯差分函数的原因如下:

1、计算简单,因为 L(x,y,σ)L(x,y,σ)是一定需要计算的,而D(x,y,σ)只需要执行减法。
2、高斯拉普拉斯算子LoG(Laplacian of Gaussian),即图像的二阶导数,能够在不同的尺度下检测到图像的斑点特征,从而检测到图像中尺度变化下的位置不动点,但是LoG的运算效率不高。而DoG是LoG的近似。DoG和LoG的关系如下述所示:

 而 σ2∇2G正是尺度归一化算子的表达形式。在所有的尺度中 k-1是一个常数,当 kk趋近于1的时候误差趋近于0,但实际上这种误差对于极值的位置检测并没有什么影响
3、通过前人的实验证明LoG提取的特征稳定性最强
 

3.5 LBP(局部二值模式)
3.6 HAAR
         Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素之和减去黑色矩形像素之和。Haar特征值反映了图像的灰度变化情况。 如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。
在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出、不会因光照、仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

 

3.7 SIFT vs HOG
共同点:都是基于图像中梯度方向直方图的特征提取方法
不同点:
SIFT提取的关键点是角点(是角点+梯度直方图),HOG提取的是边缘特征。
SIFT 特征通常与使用SIFT检测器得到的兴趣点一起使用。这些兴趣点与一个特定的方向和尺度相关联。通常是在对一个图像中的方形区域通过相应的方向和尺度变换后,再计算该区域的SIFT特征。
结合SIFT和HOG方法,可以发现SIFT对于复杂环境下物体的特征提取具有良好的特性;而HOG对于刚性物体的特征提取具有良好的特性。

4.膨胀和腐蚀含义?开运算和闭运算先后顺序?

Opencv 笔记1 膨胀、腐蚀、morphologyEx、开、闭操作_Σίσυφος1900的博客-CSDN博客
    膨胀:指使用卷积核B(可以理解为模板)对图像A(或者某部分区域)进行卷积操作,卷积核可以是任意形状或大小。膨胀是求局部最大值的操作。
当卷积核B(模板)扫描图像A与其进行卷积操作时,计算模板B覆盖的区域的最大值并将最大值赋给模板的参考点。因为图像中亮点的灰度值大,所以膨胀操作会使得图像中的高亮区域逐渐增长。

腐蚀:是膨胀的反操作,腐蚀计算的是局部区域的最小值。将卷积核B与图像A进行卷积,将B所覆盖区域的最小值赋给参考点。腐蚀操作会使得图像中亮的区域变小,暗的区域变大。
 
开操作
● 开操作是指:先腐蚀,在膨胀。
● 开操作可以移除较小的明亮区域、在较细的地方分离物体。
● 应用例子:通过开操作将阈值处理后的细胞分离,可以更清晰地统计细胞数目

闭操作
● 闭操作是指:先膨胀,再腐蚀。
● 闭操作可以填充物体内的细小空洞、连接邻近的明亮物体。


5.传统的边缘检测算子有哪些? Opencv 笔记5 边缘处理-canny、sobel、Laplacian、Prewitt_Σίσυφος1900的博客-CSDN博客
     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度旋转?

opencv 图像旋转_Σίσυφος1900的博客-CSDN博客
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.图像处理基本算法


图像平滑 Opencv 笔记3 图像平滑_Σίσυφος1900的博客-CSDN博客

图像滤波算法 

模型匹配

Blob分析
 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。