Page 958 - 3-3
P. 958
i n t ( r o u n d ( p l a t e L i s t [ 3 ] [ 1 ] - p l a t e L i s t [ 3 ] [ 3 ] * 0 . 5 ) ) )
endPos=(int(round(-plateList[0][0]-plateList[0][2]+plateList[3][0]*1.955))
,int(round(plateList[0][1]+plateList[0][3]*1.5)))
crop=dst[startPos[1]:endPos[1],endPos[0]:startPos[0]]
# 얻어낸 좌표에서 추출
if len(crop) is 0:
# 얻지 못했다면
print("Don't find plate!")
continue
# 다시 시도
crop2=crop.copy()
#crop2 에 crop 을 복사하여 대입
_,gb=defCap.filter(crop2)
#crop2 를 필터링하여 gb 에저장
_,_,stats,_=cv2.connectedComponentsWithStats(gb)
#gb 를 넣어 사각형값으로 반환받아 좌표값을 받음
plateNumList=['9 ','9 ',' 호 ','9 ','9 ','9 ','9\n']
# 사진의 답을 넣는다
index=0
# 일정 번호를 저장하기위한 변수
candList=[]
# 최종적인 번호판 7 자리를 넣기위한 리스트
crop3=None
iCount=0
# 번호판이 몇 번째 것 인지 체크하기 위한 변수
for i in stats:
#stats 를 1 개씩 에 대입i
startPos=(i[0],i[1])
# 사각형의 왼쪽 위 좌표
endPos=(i[0]+i[2],i[1]+i[3])
# 사각형의 오른쪽 아래 좌표
if len(stats)>=8 and (iCount is 2 or iCount is 3):
# 번호판이 8 개 이상있고 번호판이, 2 번째 3 번째라면
candList.append(i)
#candList 에 추가
else:
# 아니라면
if i[2]/i[3]<2.2:
# 비율이 2.2 보다 작은 사각형을
candList.append(i)
#candList 에 추가
iCount+=1
- 958 -