https://blog.csdn.net/zimiao552147572/article/details/106172585

Canny边缘检测的流程

答案:
高斯滤波
计算图像的梯度
非极大值抑制
高低阈值输出二值图像

问题拓展

其他的边缘检测算子的使用,比如sobel,scharr算子等

常用的边缘检测方法有哪些?

对霍夫变换的理解

​​​​​​​答案
针对每个像素点,使得theta从-90度到180度,使用极坐标p = xcos(theta) + ysin(theta) 计算得到共270组(p,theta)代表着霍夫空间的270条直线。将这270组值存储到H中。
如果一组点共线,则这组点中的每个值,都会使得H(p,theta)加1。
因此找到H(p,theta)值最大的直线,就是共线的点最多的直线,H(p,theta)值次大的,是共线点次多的直线。可以根据一定的阈值,将比较明显的线全部找出来

​​​​​​​问题拓展

直线检测的算法?

请说下霍夫圆检测的原理?

import cv2 as cv
import numpy as npplanets = cv.imread("planet_glow.jpg")
gay_img = cv.cvtColor(planets, cv.COLOR_BGRA2GRAY)
img = cv.medianBlur(gay_img, 7)  # 进行中值模糊,去噪点
cimg = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
circles = cv.HoughCircles(img, cv.HOUGH_GRADIENT, 1, 50, param1=100, param2=30, minRadius=0, maxRadius=0)circles = np.uint16(np.around(circles))
print(circles)for i in circles[0, :]:  # 遍历矩阵每一行的数据cv.circle(planets, (i[0], i[1]), i[2], (0, 255, 0), 2)cv.circle(planets, (i[0], i[1]), 2, (0, 0, 255), 3)cv.imshow("gay_img", planets)
cv.waitKey(0)
cv.destroyAllWindows()

https://www.cnblogs.com/liutianrui1/articles/10107765.html

对HOG特征的理解

​​​​​​​问题解析
HOG(Histogram of Oriented Gridients的简写)特征检测算法,一种解决人体目标检测的图像描述子,是一种用于表征图像局部梯度方向和梯度强度分布特性的描述符。

答案
HOG的主要思想是:在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布(即梯度的统计信息,而梯度主要位于边缘的地方)很好地描述。HOG特征检测算法的几个步骤:颜色空间归一化—>梯度计算—>梯度方向直方图—>重叠块直方图归一化—>HOG特征

​​​​​​​问题拓展
理解Harr特征,LBP特征等?

常用的图像局部特征和全局特征

​​​​​​​问题解析
首先明确全局特征和局部特征的意义:

全局特征指图像的整体属性,包括颜色特征、纹理特征、形状特征、直方图等。容易受到干扰,如光照、旋转、噪声等。
图像的局部特征反映图像局部的特殊性,局部特征数量丰富,特征间相关度小,不容易受到部分遮挡、光照等噪声的干扰,因为不会因为部分特征的消失而影响其他特征的检测和匹配。
典型的局部图像特征生成应包括图像极值点检测和描述两个阶段。好的局部图像特征应具有特征检测重复率高、速度快 ,特征描述对光照、旋转、视点变化等图像变换具有鲁棒性,特征描述符维度低,易于实现快速匹配等特点。

​​​​​​​答案
常用的全局特征就是颜色,纹理,形状,直方图等,局部特征有关键点,角点等

​​​​​​​问题拓展
对图像进行特征描述的方法有哪些?

图像的角点是什么?为什么使用角点作为特征?

​​​​​​​问题解析
首先明确角点是图像中极值点,在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点。

描述方法有:

一阶导数(即灰度的梯度)的局部最大所对应的像素点;
两条及两条以上边缘的交点;
图像中梯度值和梯度方向的变化速率都很高的点;
角点处的一阶导数最大,二阶导数为零,指示物体边缘变化不连续的方向​​​​​​​
答案
角点是图像很重要的特征,某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点等。对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。

​​​​​​​问题拓展
关键点指什么?特征点是什么?

常用的颜色空间

​​​​​​​问题解析
常用的图像空间有:

RGB:是图像采集设备采集图像最常用的一种,由三个分量组成,分别为红色分量®,绿色分量(G)和蓝色分量(B)。

HSI/HSV:分别为色调分量(H)、饱和度分量(S)和亮度分量(I)。色调H分量容是一种颜色“质”的反映,每一种颜色光都有相对应的波长及相应的色调值。饱和度S分量表示一种颜色的纯度。强度I分量反映了光线的强弱变化,是颜色“量”的反映。由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于色彩处理和识别,人的视觉系统经常采用HSI色彩空间,它比RGB色彩空间更符合人的视觉特性.在图像处理和计算机视觉中大量算法都可在HSI色彩空间中方便地使用

CMYK: 应用于印刷工业,印刷业通过青©、品(M)、黄(Y)三原色油墨的不同网点面积率的叠印来表现丰富多彩的颜色和阶调,这便是三原色的CMY颜色空间。

YUV: 一种颜色编码方法,常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。YUV是编译true-color颜色空间(color space)的种类, “Y”表示明亮度,“U”和“V”则是色度、浓度。

​​​​​​​答案
RGB
HSI/HSV
CMYK
YUV

图像的插值方法有哪些?

​​​​​​​问题解析
在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值。比如:做地图投影转换,对目标图像的一个象素进行坐标变换到源图像上对应的点时,变换出来的对应的坐标是一个小数,这时就需要插值。常见的插值方法有:

三次曲线插值方法计算量较大,但插值后的图像效果最好。

​​​​​​​答案
最近邻法
双线性内插法
三次内插法

常用的滤波方法,写出均值滤波的实现​​​​​​​

​​​​​​​问题解析
图像滤波既可以在空域进行,也可以在频域进行。图像滤波可以更改或者增强图像。常用的滤波器是:

高斯滤波:高斯滤波器是响应脉冲为高斯形状的滤波器,对于图像来说,高斯滤波器是利用高斯核的一个2维的卷积算子,用于图像模糊化(平滑,去除细节和噪声)
均值滤波:均值滤波器很简单,就是像素的值用窗内邻居的平均值来代替。主要应用于平滑噪声,但是跟上面的高斯滤波器比,它的平滑手段显然更粗暴些,邻域的值不管远近一律平等,高斯滤波器还至少根据远近有些区分。
中值滤波:中值滤波器就是用窗内的中间值代替该像素的值,也多用于减少噪声,特别对于椒盐噪声有很好的效果
​​​​​​​答案
滤波方法:

中值滤波
均值滤波
高斯滤波

均值滤波的实现:

def means_filter(input_image, filter_size):# 创建原图像的副本input_image_cp = np.copy(input_image)# 创建滤波器filter_template = np.ones((filter_size, filter_size))  # 对图像进行paddingpad_num = int((filter_size - 1) / 2)input_image_cp = np.pad(input_image_cp, (pad_num, pad_num), mode="constant", constant_values=0)# 获取图像的大小m, n = input_image_cp.shapeoutput_image = np.copy(input_image_cp)  # 遍历图像进行滤波for i in range(pad_num, m - pad_num):for j in range(pad_num, n - pad_num):output_image[i, j] = np.sum(filter_template * input_image_cp[i - pad_num:i + pad_num + 1, j - pad_num:j + pad_num + 1]) / (filter_size ** 2)# 输出滤波后结果output_image = output_image[pad_num:m - pad_num, pad_num:n - pad_num]return output_image

​​​​​​​问题拓展
图像中的噪声怎么处理?

椒盐噪声使用哪种滤波方法较好?

Graph-cut的基本原理和应用​​​​​​​

​​​​​​​问题解析
GraphCut方法图像分割问题与图的最小割(min cut)问题相关联。

首先用一个无向图G=表示要分割的图像,V和E分别是顶点(vertex)和边(edge)的集合。此处的Graph和普通的Graph稍有不同。普通的图由顶点和边构成,如果边的有方向的,这样的图被则称为有向图,否则为无向图,且边是有权值的,不同的边可以有不同的权值,分别代表不同的物理意义。而Graph Cuts图是在普通图的基础上多了2个顶点,这2个顶点分别用符号”S”和”T”表示,统称为终端顶点。其它所有的顶点都必须和这2个顶点相连形成边集合中的一部分。

答案
根据待分割的图像,确定图的节点与边,即图的形状已确定下来,是给图中所有边赋值相应的权值,然后找到权值和最小的边的组合,就完成了图像分割。

​​​​​​​问题拓展
基于图的分割方法有哪些?

Grabcut的原理

写一个图像的resize方法

​​​​​​​问题解析
实现图像的缩放,要求不能直接使用opencv等图像处理工具:

获取要处理的图像及图像缩放后的大小
确定缩放比例
遍历缩放后的结果,利用双线性插值法完成图像的缩放
​​​​​​​答案

def image_Resize(src, shape):# 获取原图像和图像缩放后的大小.height, width, channels = src.shapedst_width, dst_height = shape# 若缩放后大小与原图像相同,则直接放回原图像if ((dst_height == height) and (dst_width == width)):return src# 创建全0数组存放缩放后图像dst_Image = np.zeros((dst_height, dst_width, channels), np.uint8)# 缩放比例.scale_x = float(width)/dst_widthscale_y = float(height)/dst_height# 遍历for k in range(channels):for dst_y in range(dst_height):for dst_x in range(dst_width):# Original coords.src_x = (dst_x + 0.5) * scale_x - 0.5src_y = (dst_y + 0.5) * scale_y - 0.5# 双线性插值src_x_0 = int(np.floor(src_x))src_y_0 = int(np.floor(src_y))src_x_1 = min(src_x_0 + 1, width - 1)src_y_1 = min(src_y_0 + 1, height - 1)value0 = (src_x_1 - src_x) * src[src_y_0, src_x_0, k] + (src_x - src_x_0) * src[src_y_0, src_x_1, k]value1 = (src_x_1 - src_x) * src[src_y_1, src_x_0, k] + (src_x - src_x_0) * src[src_y_1, src_x_1, k]# 缩放后结果dst_Image[dst_y, dst_x, k] = int((src_y_1 - src_y) * value0 + (src_y - src_y_0) * value1)return dst_Image

​​​​​​​问题拓展
写程序将图片放大或缩小?

图像中直方图的应用

图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。这种直方图中,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。CV 领域常借助图像直方图来实现图像的二值化。

答案
每幅图像都可做出其灰度直方图。
根据直方图的形态可以大致推断图像质量的好坏。由于图像包含有大量的像元,其像元灰度值的分布应符合概率统计分布规律。假定像元的灰度值是随机分布的,那么其直方图应该是正态分布。
图像的灰度值是离散变量,因此直方图表示的是离散的概率分布。若以各灰度级的像元数占总像元数的比例值为纵坐标轴做出图像的直方图,将直方图中各条形的最高点连成一条外轮廓线,纵坐标的比例值即为某灰度级出现的概率密度,轮廓线可近似看成图像相应的连续函数的概率分布曲线

SIFT/SURF的特征提取方法,是如何保持尺度不变性的?

​​​​​​​问题解析
主要考察SIFT/SURF特征的理解,SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向**。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等**。

  • 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键点。
  • 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
  • 关键点方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。
  • 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度作为关键点的描述符,它允许比较大的局部形状的变形或光照变化。

SURF 算法,是SIFT算法的增强版,它的计算量小,运算速度快,提取的特征与SIFT几乎相同。

​​​​​​​答案
SIFT/SURF特征:尺度不变特征转换,在空间尺度中寻找极值,提取位置,尺度、旋转不变量。流程是:尺度空间极值检测—>关键点定位—>关键点方向确定—>关键点描述

计算机视觉CV:图像处理面试题相关推荐

  1. 计算机视觉与图像处理面试题,深度学习图像处理算法工程师面试题

    AI开发平台ModelArts ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注.大规模分布式Training.自动化模型生成,及端-边-云模型 ...

  2. 【我的OpenGL学习进阶之旅】计算机视觉 (CV) 、 计算机图形学 (CG) 以及图像处理(DIP)

    文章目录 一.计算机视觉 (Computer Vision) VS 计算机图形学 (Computer Vision) 以及图像处理(Digital Image Processing) 1.1 先说区别 ...

  3. c# 计算空格宽度像素_分享计算机视觉之图像处理Python之opencv

    start 计算机视觉 计算机视觉信息的处理技术主要依赖于图像处理方法,经过处理后输出图像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像进行分析.处理和识别. 01 ♡♡♡ &q ...

  4. 【转】 计算机视觉、图像处理学习资料汇总

    计算机视觉.图像处理学习资料汇总 分类: 数字图像处理2012-07-19 09:24 2629人阅读 评论(1) 收藏 举报 图像处理processingimage微软compressionreso ...

  5. 图像处理笔试题面试题

    图像处理笔试题面试题 1.相机标定的几个参数 答:第一步从世界坐标系转换为相机坐标系,从三维点到三维点的转换,包括R,t(相机外参)等参数:第二步是(投影变换)从相机坐标系转换为成像平面坐标系(像素坐 ...

  6. 《计算机视觉与图像处理》最全总结之就业必备-小白易懂易上手

    <计算机视觉与图像处理>最全总结之就业必备-小白易懂易上手 最近需要找工作找实习,自己就把计算机视觉方向的知识点重新梳理了一遍,看的是开课吧CV视频资料,并写了一些笔记,需要的话可转场获取 ...

  7. Dataset之CV:人工智能领域数据集集合(计算机视觉CV方向数据集)之常见的计算机视觉图像数据集大集合(包括表面缺陷检测数据集,持续更新)

    Dataset之CV:人工智能领域数据集集合(计算机视觉CV方向数据集)之常见的计算机视觉图像数据集大集合(包括表面缺陷检测数据集,持续更新) 目录 CV常用数据集平台集合 Mendeley Data ...

  8. 深度学习和计算机视觉(CV)介绍

    目录 1 深度学习概述 1.1 什么是深度学习 1.2 发展历史 2 计算机视觉(CV) 2.1 计算机视觉定义 2.2 常见任务 2.3 应用场景 2.3.1 人脸识别 2.3.2 视频监控 2.3 ...

  9. 计算机视觉CV的入门理解

    计算机视觉CV的入门理解 最近开始,工作中需要使用计算机视觉CV,而博主之前没有系统学习过,因此把学习的知识记录下来,作为入门理解. 如果想要机器能够进行思考,我们需要先教会它们去看. --斯坦福人工 ...

  10. 一文看懂计算机视觉-CV(基本原理+2大挑战+8大任务+4个应用)

    2020-03-06 20:00:00 计算机视觉(Computer Vision)是人工智能领域的一个重要分支.它的目的是:看懂图片里的内容. 本文将介绍计算机视觉的基本概念.实现原理.8 个任务和 ...

最新文章

  1. hadoop和spark搭建记录
  2. Kotlin 普及度增加,代码质量比 Java 更高?
  3. u盘安装Fedora18
  4. git显示服务器所有分支,怎么拉取git服务器上面的分支到本机?
  5. 用自动阈值话处理SVM棋盘
  6. 64位ubuntu kylin 16.04下制作tiny4412可用的SD启动卡
  7. 前端转行大数据?没必要
  8. 对malloc和free的思考
  9. 离散数学与计算机选择题,《离散数学》期终试题计算机系.doc
  10. 【TO DO!】二分查找各种情况大总结
  11. ExtJS 4应用架构设计
  12. java异步编程书籍_《Java异步编程实战》(翟陆续)【摘要 书评 试读】- 京东图书...
  13. 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,计算机控制课程设计――大纯时延一阶惯性环节温度控制系统....
  14. 《凤凰项目-一个IT运维从传奇故事》读后感+个人职业思考
  15. 北卡州立大学计算机科学硕士,北卡罗莱纳州立大学计算机科学专业研究生申请条件有哪些?...
  16. java 实现html压缩
  17. 1.EKL在项目中担当的位置
  18. linux哪个版本支持tipc,TIPC协议和实现解析
  19. 2020豆瓣电影首页热门电影+热门电视剧 API
  20. B. Integers Have Friends(cf)二分 + st表

热门文章

  1. word字间距异常处理方式
  2. ENVI的seamless mosaic工具详解
  3. Sentinel-1 影像与精轨数据下载(经常更新中)
  4. java 容器类 面试_校招面试之Java容器
  5. 数据结构-03-队列
  6. easyx按钮透明度特效_【素材】100组4K灰尘粒子烟雾特效
  7. android通过xmpp实现服务器到客户端的推送功能
  8. 一种支持多种流媒体协议的播放内核
  9. 买空间做网站_企业做网站购买空间的注意事项?
  10. linux 百科百科手机版,百科题库app-百科题库知识集锦手机版下载v2.0.0-Linux公社...