一、選擇題
課程里的細節,
二、名詞解釋
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382143.html
標籤:其他
