OpenCV计算机视觉基础教程试题及答案
一、单项选择题(本大题共20小题,每小题1分,共20分)
1、OpenCV创建于( )年。
A、1997 B、1998 C、1999 D、2000
2、OpenCV提供图像文件读写的模块是( )
A、core B、imgcodecs C、imgproc D、highgui
3、OpenCV使用( )语言实现。
A、Java B、C/C++ C、Python D、JavaScript
4、NumPy中可用于表示无符号整数的数据类型是( )。
A、int8 B、uint16 C、intp D、float
5、NumPy中可用于创建单位矩阵的函数是( )
A、array() B、zeros() C、arange() D、ones()
6、OpenCV用于将图像写入文件的函数是( )
A、imread() B、imshow() C、imwrite() D、VideoCapture()
7、OpenCV用于绘制椭圆的函数是( )
A、line() B、circle() C、ellipse() D、polylines()
8、OpenCV用于对图像执行透视变换的函数是( )
A、flip() B、resize() C、warpAffine() D、warpPerspective()
9、OpenCV用于实现截断阈值处理的参数是( )
A、THRESH_BINARY B、THRESH_BINARY_INV
C、THRESH_TRUNC D、THRESH_TOZERO
10、下列关于轮廓查的说法错误的是( )
A、findContours()函数只能从二值图像中查图像轮廓。
B、findContours()函数返回一个list对象。
C、findContours()函数返回图像中的所有轮廓。
D、父级轮廓和子级轮廓之间是嵌套关系。
11、下列选项中,可返回轮廓长度的函数是( )
A、arcLength() B、contourArea() C、approxPolyDP() D、convexHull()
12、下列选项中,适用于检测图像中的直线的函数是( )
A、Laplacian() B、Sobel() C、Canny() D、HoughLines()
13、下列选项中,可返回2维直方图的函数是( )
A、hist() B、calcHist() C、createCLAHE() D、equalizeHist()
14、使用分水岭算法分割图像时,不会执行的操作是( )
A、将原图像转换为灰度图像。 B、确定图像前景
C、确定未知区域。 D、从图像中删除背景
15、使用Shi-Tomasi角检测器执行角检测的函数是( )
A、cornerHarris() B、cornerSubPix() C、goodFeaturesToTrack() D、findHomography()
16、调用drawMatches()函数绘制关键点时,如果不绘制单个关键点,应使用的参数是( )
A、DrawMatchesFlags_DEFAULT B、DrawMatchesFlags_DRAW_OVER_OUTIMG
C、DrawMatchesFlags_DRAW_RICH_KEYPOINTS D、DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS
17、执行a=mumpy.arange(12)后,下列选项中不能正确执行的( )
A、a.shape=(3,-1) B、a.reshape((2,3))
C、 a.resize((3,4)) D、a.resize((3,5),refcheck=False)
18、在OpenCV的绘图函数中,可用于设置绘制填充图形的参数是( )
A、color B、thickness C、lineType D、shift
19、下列选项中关于鼠标回调函数的说法错误的是( )
A、回调函数名称由用户定义。
B、回调函数可获得发生事件时的鼠标位置坐标。
C、可向回调函数传递自定义数据。
D、回调函数不能检测是否Alt、Ctrl、Shift等按键行为。
20、在滤波时会考虑距离和差信息的是( )
A、medianBlur() B、bilateralFilter() C、boxFilter() D、.blur()
得 分 | 评卷人 | 复查人 |
二、名词解释(本大题共5小题,每小题4分,共20分)
1、彩空间
2、透视变换
3、均值滤波
4、反二值化阈值处理
5、腐蚀
得 分 | 评卷人 | 复查人 |
三、简单题(本大题共4小题,每小题5分,共20分)
1、请问OpenCV的主要功能有哪些?
2、请问如何执行图像加法运算?
3、请问使用OpenCV的ml模块中的kNN算法包含哪些步骤?
4、请问EigenFaces人脸识别包含哪些步骤?
得 分 | 评卷人 | 复查人 |
四、程序填空题(本大题共4个空,每空5分,共20分)
1、下面的命令创建一个数组,在改变其形状后输出,在划线处填入适当的代码,将程序补充完整。
>>> a=np.arange(8) #创建数组
>>> a #输出数组
array([ 0, 1, 2, 3, 4, 5, 6, 7])
>>> a.shape=___________ #更改数组形状
>>> a #输出数组
array([[ 0, 1, 2, 3,],
[ 4, 5, 6, 7]])
2、下面的程序在指定窗口中显示图像,在划线处填入适当的代码,将程序补充完整。
import cv2
img=cv2.imread('apple.jpg') #读取图像
____________________________ #创建窗口
cv2.imshow('imgw',img) #在窗口中显示图像
cv2.waitKey(0)
3、下面的程序在窗口一半高度位置画水平白直线,在划线处填入适当的代码,将程序补充完整。
import numpy as np
import cv2
s((200,320,3), np.uint8) #创建一幅黑图像
___________________________________________ #在窗口一半高度位置画水平白直线
cv2.imshow('draw',img) #显示图像
cv2.waitKey(0)
4、下面的代码执行Canny边缘检测,阈值1设置为150,阈值2设置为240,在划线处填入适当的代码,将程序补充完整。rectangle函数opencv
import cv2
img=cv2.imread('building.jpg') #读取图像
cv2.imshow('original',img) #显示原图像
_________________________________ #边缘检测
cv2.imshow('result',img2) #显示结果
得 分 | 评卷人 | 复查人 |
五、编程题(本大题共2小题,每小题10分,共20分)
1、编写一段程序,使用calcHist()函数查图像的B通道的直方图,并利用matplotlib.pyplot的plot()函数绘制出直方图。
2、编写一段程序,使用Haar级联检测器检测图像中的人脸,并用矩形框标注人脸位置。
答案
一、单项选择题(本大题共20小题,每小题1分,共20分)
1~5:CBBBD 6~10:CCDCC
11~15: ADBDC 16~20:DBBDB
六、名词解释(本大题共5小题,每小题4分,共20分)
1、彩空间
答:彩空间也称颜模型、颜空间、彩模型等,它是图像在计算机内部的一种存储方式。常见的彩空间包括RGB、GRAY、XYZ、YCrCb、HSV等。
2、透视变换
答:透视变换会将图像转换为任意的四边形,其主要特点是:原始图像中的所有直线在转换后的图像中仍然是直线。
3、均值滤波
答:均值滤波是指以当前点为中心,用其周围N×N个点像素值的平均值来替代当前点的像素值。
4、反二值化阈值处理
答:cv2.threshold()函数的type参数值为cv2.THRESH_BINARY_INV时执行反二值化阈值处理,将大于阈值的像素值设置为0,将其他像素值设置为255。
5、腐蚀
答:腐蚀操作遍历图像时,会根据内核和图像的位置决定内核中心对应的图像像素点的输出结果。当内核部分或全部处于前景之外时,内核中心对应单元格的值设置为0;只有在内核完全处于前景内部时,内核中心对应单元格的值才设置为1。
七、简单题(本大题共4小题,每小题5分,共20分)
1、请问OpenCV的主要功能有哪些?
答:OpenCV的主要功能包括:内置数据结构和输入/输出、图像处理操作、图形用户界面操作、视频分析、3D重建、特征提取、对象检测、机器学习、深度学习、计算摄影、形态分析、脸检测和识别、表面匹配以及文本检测和识别。
2、请问如何执行图像加法运算?
答:加法运算符“+”和cv2.add()函数可用于执行图像加法运算。
用“+”运算符执行两个图像数组加法时,如果两个像素相加大于256,则会将其按256取模。cv2.add()函数执行两个图像数组加法时,如果两个像素相加大于256,则取255。
3、请问使用OpenCV的ml模块中的kNN算法包含哪些步骤?
答:使用OpenCV的ml模块中的kNN算法的基本步骤如下。
(1)调用cv2.ml.KNearest_create()函数创建kNN分类器。
(2)将训练数据和标志作为输入,调用kNN分类器的train()方法训练模型。
(3)将待分类数据作为输入,调用kNN分类器的findNearest()方法出k个最近邻居,返回分类结果的相关信息。
4、请问EigenFaces人脸识别包含哪些步骤?
答:EigenFaces人脸识别的基本步骤如下。
(1)调用cv2.face.EigenFaceRecognizer_create()方法创建EigenFaces识别器。
(2)调用识别器的train()方法以便使用已知图像训练模型。
(3)调用识别器的predict()方法以便使用未知图像进行识别,确认其身份。
八、程序填空题(本大题共4个空,每空5分,共20分)
1、(2,-1)或(2,4)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论