OpenCV与图像处理学习十二——图像形状特征之HOG特征
OpenCV與圖像處理學習十二——圖像形狀特征之HOG特征
- 一、圖像特征理解
- 1.1 顏色特征
- 1.2 紋理特征
- 1.3 形狀特征
- 1.4 空間關系特征
- 二、形狀特征描述
- 2.1 HOG特征
- 2.1.1 基本概念
- 2.1.2 HOG實現過程
- 2.1.3 代碼實現
前面介紹了圖像的基礎知識、基本處理方法以及傳統圖像分割的應用,下面的筆記將介紹圖像特征與目標檢測部分的應用,知識脈絡如下所示:
一、圖像特征理解
圖像特征是圖像中獨特的, 易于跟蹤和比較的特定模板或特定結構,如下圖所示:
其中E和F是在圖像中獨特的、特殊的模板,而ABCD四個在圖像中是普遍存在的,沒有特殊性。
特征就是有意義的圖像區域, 該區域具有獨特性或易于識別性!
圖像特征提取與匹配是計算機視覺中的一個關鍵問題, 在目標檢測、物體識別、 三維重建、 圖像配準、 圖像理解等具體應用中發揮著重要作用。
圖像特征主要有圖像的顏色特征、 紋理特征、 形狀特征和空間關系特征。
1.1 顏色特征
顏色特征是一種全局特征, 描述了圖像或圖像區域所對應的景物的表面性質。
顏色特征描述方法:
- 顏色直方圖
- 顏色空間
- 顏色分布
1.2 紋理特征
紋理特征也是一種全局特征, 它也描述了圖像或圖像區域所對應景物的表面性質。 但由于紋理只是一種物體表面的特性, 并不能完全反映出物體的本質屬性,所以僅僅利用紋理特征是無法獲得高層次圖像內容的。
1.3 形狀特征
形狀特征有兩類表示方法,一類是輪廓特征, 另一類是區域特征。圖像的輪廓特征主要針對物體的外邊界,而圖像的區域特征則描述了是圖像中的局部形狀特征。
1.4 空間關系特征
是指圖像中分割出來的多個目標之間的相互的空間位置或相對方向關系。
這些關系也可分為連接/鄰接關系、 交疊/重疊關系和包含/獨立關系等。
二、形狀特征描述
2.1 HOG特征
2.1.1 基本概念
方向梯度直方圖(Histogram of Oriented Gradient, HOG) 特征是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子。
它通過計算和統計圖像局部區域的梯度方向直方圖來構成特征。Hog特征結合SVM分類器已經被廣泛應用于圖像識別中, 尤其在行人檢測中獲得了極大的成功。
主要思想: 在一副圖像中, 目標的形狀能夠被梯度或邊緣的方向密度分布很好地描述,所以使用HOG特征來描述目標的形狀。
2.1.2 HOG實現過程
2.1.3 代碼實現
import cv2 import numpy as np # 判斷矩形i是否完全包含在矩形o中 def is_inside(o, i):ox, oy, ow, oh = oix, iy, iw, ih = ireturn ox > ix and oy > iy and ox + ow < ix + iw and oy + oh < iy + ih# 對人體繪制顏色框 def draw_person(image, person):x, y, w, h = personcv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 255), 2)img = cv2.imread("people.jpg") hog = cv2.HOGDescriptor() # 啟動檢測器對象 hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) # 指定檢測器類型為人體 found, w = hog.detectMultiScale(img, 0.1, (1, 1)) # 加載并檢測圖像 print(found) print(w)# 丟棄某些完全被其它矩形包含在內的矩形 found_filtered = [] for ri, r in enumerate(found):for qi, q in enumerate(found):if ri != qi and is_inside(r, q):breakelse:found_filtered.append(r)print(found_filtered) # 對不包含在內的有效矩形進行顏色框定 for person in found_filtered:draw_person(img, person) cv2.imshow("people detection", img) cv2.waitKey(0) cv2.destroyAllWindows()原圖為:
檢測結果:
總結
以上是生活随笔為你收集整理的OpenCV与图像处理学习十二——图像形状特征之HOG特征的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输入一个十进制数,转化为二进制
- 下一篇: 数字图像处理实验——Python语言实现