2
我正在使用Python和Opencv。我正在做一個項目來識別汽車攝像頭的車牌。車牌照檢測車牌攝像頭
我試過使用Canny()
,但我仍然無法識別板。
1)
首先,我將圖像轉換爲灰度,增加顏色的合同並最終將其轉換成 「一柄圖像」
img = cv2.imread("plate.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.equalizeHist(gray)
edged = cv2.Canny(gray, 200, 255)
2)
然後,我試圖找到一個矩形輪廓如下,我試圖通過convexHull()
濾除由面積和長度以及不規則多邊形的不相干矩形:
(cnts, _) = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cnts=sorted(cnts, key = cv2.contourArea, reverse = True)[:10]
# loop over our contours
plate_candidates = []
for c in cnts:
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.02 * peri, True)
area = cv2.contourArea(approx)
if len(approx) == 4 and area <=1000 and area >=500 and self._length_checking(approx):
hull = cv2.convexHull(approx,returnPoints = True)
if len(hull) ==4:
plate_candidates.append(approx)
cv2.drawContours(show, [approx], -1, (0,255,0), 3)
但是,我仍然無法辨認板子。我正在尋找幫助,我如何檢測車牌。謝謝。
感謝您的回覆。你的意思是我使用的限制太嚴格了嗎?通過使用'area'和'rectangleness'就足以檢測矩形? – VICTOR
在你的情況下,你甚至不需要矩形,你可以使用區域 – maxymoo
我以前使用過這種方法,但是,有時我會檢測到一些非四邊形的形狀。爲了過濾掉這些非四邊形或不規則形狀,我使用'len(hull)== 4'來確定 – VICTOR