计算机视觉/图像处理相关面经2

均从网上搜集而来,非本人面经,这里做简单整理,本篇侧重于图像处理算法

图像去噪算法

均值滤波、高斯滤波、中值滤波..
non-local Means(非局部均值):出发点应该是借鉴了越多幅图像加权的效果越好的现象,它利用了整幅图像进行去噪。即以图像块为单位在图像中寻找相似区域,再对这些区域取平均,较好地滤除图像中的高斯噪声。它利用了整幅图像进行去噪。即以图像块为单位在图像中寻找相似区域,再对这些区域取平均,较好地滤除图像中的高斯噪声。
BM3D:过于复杂,暂时来不及看了

图像增强

线性变换、伽马变换、直方图均衡化:直方图均衡化实质上是减少图像的灰度级以换取对比度的加大。
一些边缘检测滤波算子参考本人博客:https://kevinj-huang.github.io/2019/06/10/%E5%8D%9A%E5%AE%A2143/

中值滤波python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def Median_filtering(image,window_size):   #image为传入灰度图像,window_size为滤波窗口大小
high, wide = image.shape
img = image.copy()
mid = (window_size-1) // 2
med_arry = []
for i in range(high-window_size):
for j in range(wide-window_size):
for m1 in range(window_size):
for m2 in range(window_size):
med_arry.append(int(image[i+m1,j+m2]))

# for n in range(len(med_arry)-1,-1,-1):
med_arry.sort() #对窗口像素点排序
# print(med_arry)
img[i+mid,j+mid] = med_arry[(len(med_arry)+1) // 2] #将滤波窗口的中值赋给滤波窗口中间的像素点
del med_arry[:]
print("结束")
cv2.imshow("Median_filtering",img)

原文链接:https://blog.csdn.net/qq_24872841/java/article/details/99679748

LBP/HOG算子

原始的LBP算子定义为在33的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,33领域内的8个点可产生8bit的无符号数,即得到该窗口的LBP值,并用这个值来反映该区域的纹理信息。

对一幅图像提取其原始的LBP算子之后,得到的原始LBP特征依然是“一幅图片”。直接对两幅图片提取这种LNP,并进行判别分析的话,会因为“位置没有对准”而产生很大的误差。后来,研究人员发现,可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述;整个图片就由若干个统计直方图组成

HOG基本思想是获得每个块区域的梯度直方图作为描述子,具体如下所示:
1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);
2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;
3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。
4)将图像划分成小cells(例如66像素/cell);
5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;
6)将每几个cell组成一个block(例如3
3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。
7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。‘

Harris角点检测

Harris 角点检测算法分为以下三步:

当窗口(小的图像片段)同时向 x 和 y 两个方向移动时,计算窗口内部的像素值变化量 ;
对于每个窗口,都计算其对应的一个角点响应函数 R;
然后对该函数进行阈值处理,如果 R > threshold,表示该窗口对应一个角点特征。

0%