计算机视觉复习

Posted 告胜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机视觉复习相关的知识,希望对你有一定的参考价值。

一、选择题

课程里的细节。

二、名词解释

1、色彩空间:也称颜色模型、颜色空间、色彩模型等,它是图像在计算机内部的一种存储方式。

2、透视变换:透视变换会将图像转换为任意的四边形,其主要特点是:原始图像中的所有直线在转换后的图像中仍然是直线。

3、均值滤波:均值滤波是以当前点为中心,用其周围N*N个点像素值的平均值来替代当前点的像素值。

4、高斯滤波:高斯滤波与均值滤波略有不同,它按像素点与中心点的不同距离,赋予像素点不同的权重值,越靠近中心点权重越大,越远离中心点权重越小;然后根据权重值计算领域内所有像素点的和,将和作为中心点的像素值。

5、二值化阈值处理:cv2.threshold()函数的type参数值为cv2.THRESH_BINARY时执行二值化阈值处理,将大于阈值的像素值设置为255,将其他像素值设置为0。

6、反二值化阈值处理:cv2.threshold()函数的type参数值为cv2.THRESH_BINARY_INV时进行反二值化阈值处理,将大于阈值的像素值设置为0,将其他像素值设置为255。

7、腐蚀:腐蚀操作遍历图像时,会根据内核和图像的位置决定内核中心对应的图像像素点的输出结果。通过腐蚀操作,图像的边界被腐蚀。将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小.

8、膨胀:膨胀操作与腐蚀操作刚好相反,它对图像的边界进行扩张。执行遍历操作时,只有内核完全处于前景外部时,内核中心对应像素点的值才设置为0,否则设置为1.

三、简单题

1、Opencv主要功能:内置数据结构和输入/输出;图像处理操作;图形用户界面操作;

                                    视频分析;3D重建;特征提取;对象检测;机器学习;

                                    深度学习;计算摄影;形态分析;人脸检测和识别;表面匹配;

                                    文本检测和识别。

2、如何执行图像加法运算:加法运算符 “+” 和cv2.add()函数可用于执行图像加法运算。

用 “+” 运算符执行两个图像数组加法时,如果两个像素相加大于256,则会将其按256取模。cv2.add()函数执行两个图像数组加法时,如果两个像素相加大于256,则取255.

 3、使用OpenCV的ml模块中的KNN算法的基本步骤

(1)调用cv2.ml.KNearest_create()函数创建KNN分类器。

(2)将训练数据和标志作为输入,调用KNN分类器的train()方法训练模型。

(3)将待分类数据作为输入,调用KNN分类器的findNearest()方法找出k个最近邻居,返回分类结果的相关信息。

4、EigenFaces人脸识别的基本步骤

(1)调用cv2.face.EigenFaceRecognizer_create()方法创建EigenFaces识别器

(2)调用识别器的train()方法以便使用已知图像训练模型

(3)调用识别器的predict()方法以便使用未知图像进行识别,确认其身份。

5、使用OpenCV中的深度学习预训练模型进行图像识别的基本步骤

(1)从配置文件和预训练模型文件中加载模型。

(2)将图像文件处理为块数据(blob)

(3)将图像文件的块数据设置为模型的输入

(4)执行预测

(5)处理预测结果

四、编程填空

参考实验考核内容

五、编程题

1、P144:OpenCV的cv2.calcHist()函数查找直方图,再利用matplotlib.pyplot的plot()函数绘制直方图

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('th.jpg')
cv2.imshow('original', img)
histb = cv2.calcHist([img], [0], None, [256], [0, 255])  # 计算B通道直方图
plt.plot(histb, color='b')  # 绘制B通道直方图
plt.show()

2、P159:检测图像中的人脸

import cv2
img = cv2.imread('heard.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 加载人脸检测器
face = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face.detectMultiScale(gray)  # 执行人脸检测
for x, y, w, h in faces:
    cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)  # 绘制矩形标注人脸

cv2.imshow('face', img)  # 显示检测结果
cv2.waitKey(0)

3、FisherFaces人脸识别

import cv2
import numpy as np
# 读入训练图像
img11 = cv2.imread('x11.jpg', 0)  # 打开图像,灰度图像
img12 = cv2.imread('x12.jpg', 0)
img13 = cv2.imread('x13.jpg', 0)
img21 = cv2.imread('x21.jpg', 0)
img22 = cv2.imread('x22.jpg', 0)
img23 = cv2.imread('x23.jpg', 0)
train_images = [img11, img12, img13, img21, img22, img23]  # 创建训练图像数组
labels = np.array([0, 0, 0, 1, 1, 1])  # 创建标签数组
recognizer = cv2.face.FisherFaceRecognizer_create()  # 创建FisherFaces识别器
recognizer.train(train_images, labels)  # 执行训练操作
testimg = cv2.imread('no.jpg', 0)  # 打开测试图像
label, confidence = recognizer.predict(testimg)  # 识别人脸
print('匹配标签:', label)
print('可信程度:', confidence)

以上是关于计算机视觉复习的主要内容,如果未能解决你的问题,请参考以下文章

人工智能原理复习 | 基础总结 概念简答题

计算机视觉常用算法讲解

动态SQL基础概念复习(Javaweb作业5)

计算机视觉框架OpenMMLab开源学习:图像分类

火爆 GitHub!这个 AI 神器究竟有什么魅力?

计算机视觉基础图像知识点整理