自學筆記:python+opencv針對藍色來進行簡單的車牌定位

狂熱的蝸牛發表於2018-10-30

自學筆記:python+opencv針對藍色來進行簡單的車牌定位

影象處理的自學之路

車牌定位

看了幾個其他人的文章,綜合選取了幾個方法湊在一起。

def location_demo(img):
    image = cv.resize(img,(600,600))            
    #對讀取圖片做大小調整
    hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
    #把獲取的圖片從BGR調整到HSV,便於顏色篩選
    hsv = cv.medianBlur(hsv,3)
    #對影象中值濾波 
    blue_lower = np.array([100,43,46])
    blue_upper = np.array([124,255,255])
    color_choose = cv.inRange(hsv,blue_lower,blue_upper)
    #HSV格式藍色範圍
    erod = cv.erode(color_choose,None, iterations=3)
    #對影象進行腐蝕
    dilate =cv.dilate(erod,None, iterations=1)
    #對影象進行膨脹
    image1, contours , hierarchy = cv.findContours(dilate,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
	#對影象進行輪廓檢測
   for i in range(len(contours)):
   #對所有檢測到的輪廓進行按(車牌)面積篩選
        cnt = contours[i]
        area = cv.contourArea(cnt)
        #求輪廓面積
        if area > 3000 :
        #範圍可以自己根據實際情況除錯
        rect = cv.minAreaRect(cnt)
        #對所選取的面積求矩形最小面積
        box = cv.boxPoints(rect)
        #矩形點資訊提取
        box = np.int0(box)
        print(area)
        #個人愛好,觀察下面積大小- -!
        image = cv.drawContours(image, [box], -1, (0, 0, 255), 5)
        #矩形繪畫
    return image
capture = cv.VideoCapture(0)
#攝像頭呼叫,如果只有一個攝像頭的話cv.VideoCapture()引數為0,如果是視訊的話需要完整的地址
while True:
    ret, frame = capture.read()
    #視訊每幀讀取
    if ret == True:
        frame=location_demo(frame)
        #函式呼叫
        cv.imshow("vehicle plate location",frame)
        cv.waitKey(10)
        #視訊輸出
capture.release()
cv.destroyAllWindows()

喜歡對生活中的東西做研究,從影象入手。

相關文章