圖像處理入門:實現(xiàn)一個簡單的濾波器
簡介人臉識別和目標檢測這樣的術語聽起來覺得很酷,但是當涉及到從頭開始實現(xiàn)它們時,每個初學者都會覺得困難,這些技術實際上并沒有那么難實現(xiàn),一旦你掌握了其基本原理,那么實現(xiàn)它們就相當簡單了。圖像處理有很多種應用,包括用于解析文檔和生成相應文本的光學字符識別(OCR)、圖像增強與重建、物體識別、人體運動識別、手勢識別、人臉識別等。在學習的過程中,你會遇到過奇形怪狀的各種圖像濾波器,那有沒有去思考如何實現(xiàn)它嗎,在本文中,我們將通過實現(xiàn)一個簡單的濾波器來開始我們的圖像處理之旅!什么是OpenCVOpenCV是一個開源庫,包含了許多計算機視覺算法。它在計算機視覺和圖像處理中起著重要作用,用于實時操作,其效率足以滿足工業(yè)上的要求。OpenCV可以與其他庫一起使用,比如Numpy,這使得Python能夠處理OpenCV數(shù)組結(jié)構(gòu)。實現(xiàn)我們的第一個濾波器檢測邏輯計算機不能像人類一樣識別物體,為了能讓計算機達到這個目的,我們可以使用各種技術來讓計算機理解圖像,我們會將顏色作為檢測物體的主要依據(jù)。我們使用HSV顏色空間作為檢測特征。什么是HSVHSV是Hue, Saturation 和Value(色調(diào)、飽和度和值)。色調(diào):根據(jù)光譜,物體的顏色可分為紅、藍、綠、黃四種顏色。飽和度:它定義了顏色的強度。值:定義顏色的亮度。OpenCV中有150多種顏色空間轉(zhuǎn)換方法,其中一種是彩色圖像到HSV圖像的轉(zhuǎn)換。我們來看看代碼我們需要導入我們要使用的庫-OpenCV(cv2)和Numpy。import cv2
import numpy as np
Numpy是一個python庫,用于處理數(shù)組,它比傳統(tǒng)的python列表快50倍,這對我們來說非常重要,因為我們要處理很多圖像。Numpy給了我們在線性代數(shù)、傅立葉變換、矩陣等領域工作的函數(shù)。import cv2
import numpy as np
def nothing():
pass
cap=cv2.VideoCapture(0)
while(1):
_, img = cap.read()
k=cv2.waitkey(1)&0xFF
if k==27:
break
cap.release()
cv2.destroyAllWindows()
我們創(chuàng)建了一個回調(diào)函數(shù),它什么也不做,讓我們看看為什么。我們使用一個窗口來控制HSV,因為我們不知道要檢測的對象的HSV,因此我們用它來調(diào)整HSV的上下限。因為當我們使用創(chuàng)建trackbar的方法時,我們需要傳遞一個必要的回調(diào)函數(shù),在我們的例子中,這個回調(diào)函數(shù)什么也不做(但是它的使用會根據(jù)父函數(shù)的需要而改變);然后我們使用了一個方法cv2.videocapture(0),它是一個內(nèi)置函數(shù),用來從默認攝像機捕捉視頻(0表示選擇默認攝像機);最后,我們刪除了所有的窗口,并在一個點擊事件(這里我們設置為ESC鍵)后釋放捕獲。我們可以用下面的函數(shù)命名一個窗口。cv2.namedWindow(<window name>)
讓我們繼續(xù)敲代碼…import cv2
import numpy as np
def nothing(x):
pass
cap=cv2.VideoCapture(0)
cv2.namedWindow('tracking')
cv2.createTrackbar('LH','tracking',0,255,nothing)
cv2.createTrackbar('LS','tracking',0,255,nothing)
cv2.createTrackbar('LV','tracking',0,255,nothing)
cv2.createTrackbar('UH','tracking',255,255,nothing)
cv2.createTrackbar('US','tracking',255,255,nothing)
cv2.createTrackbar('UV','tracking',255,255,nothing)
因此,在設置檢測條件后,我們需要將原始數(shù)據(jù)(即彩色圖像)轉(zhuǎn)換為HSV圖像。為了將基本彩色圖像轉(zhuǎn)換為HSV圖像,我們使用<variableName> = cv2.cvtColor(<frameName>,cv2.COLOR_BGR2HSV)
然后利用Numpy數(shù)組方法設置trackbar中數(shù)據(jù)的上下界。<variableName> = np.a(chǎn)rray(<array_Of_Parameters>)
使用這個,我們會得到上面設置的所有軌跡條值。接下來我們主要做兩件事:1.創(chuàng)建掩碼掩碼是一種二進制圖像,它指示要在其中執(zhí)行操作的像素。2.我們將使用位和邏輯來屏蔽原始圖像。我們使用名為“bitwise_and”的cv2方法,它執(zhí)行邏輯與運算。<maskName> = cv2.inRange(hav, l_b, u_b)
res = cv2.bitwise_and(<frameName>, <frameName>, mask = <maskName>)
import cv2
import numpy as np
def nothing(x):
pass
cap=cv2.VideoCapture(0)
cv2.namedWindow('tracking')
cv2.createTrackbar('LH','tracking',0,255,nothing)
cv2.createTrackbar('LS','tracking',0,255,nothing)
cv2.createTrackbar('LV','tracking',0,255,nothing)
cv2.createTrackbar('UH','tracking',255,255,nothing)
cv2.createTrackbar('US','tracking',255,255,nothing)
cv2.createTrackbar('UV','tracking',255,255,nothing)
while (1):
_, img=cap.read()
hav=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
l_h=cv2.getTrackbarPos('LH','tracking')
l_s=cv2.getTrackbarPos('LS', 'tracking')
l_v=cv2.getTrackbarPos('LV', 'tracking')
u_h=cv2.getTrackbarPos('UH', 'tracking')
u_s=cv2.getTrackbarPos('US', 'tracking')
u_v=cv2.getTrackbarPos('UV', 'tracking')
l_b=np.a(chǎn)rray([l_h,l_s,l_v])
u_b=np.a(chǎn)rray([u_h,u_s,u_v])
mask=cv2.inRange(hav, l_b, u_b)
res = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow('image', img)
cv2.imshow('mask', mask)
cv2.imshow('res', res)
k=cv2.waitKey(1)&0xFF
if k==27:
break
cap.release()
cv2.destroyAllWindows()
這些幀使用名為“imshow”的方法顯示。cv2.imshow(<name_of_Window>, <windowVariable>)
結(jié)果
結(jié)果只檢測到粉紅色的物體,這是因為我們只想選擇粉紅色的物體!實際上,我們已經(jīng)使用軌跡條為特定的粉紅色設置了HSV值,這就是輸出只有特定粉紅色的原因。您可以選擇要檢測的任何特定顏色值。
結(jié)論本文我們實現(xiàn)了一個濾波器,可以檢測我們指定特定顏色的物體。我們所做的只是圖像處理和目標檢測的一個非;镜慕榻B性任務。近年來,計算機視覺領域有了很大的發(fā)展,其中大部分都包含了機器學習和深度學習技術。在許多項目中,對象檢測是首先執(zhí)行的基本任務,因為它為我們提供了有關環(huán)境的信息,我們可以根據(jù)使用情況進行過濾。
參考引用Implementing colour and shape-based object detection and tracking with OpenCV.

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?