自学笔记:python+opencv针对蓝色来进行简单的车牌定位

自学笔记: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()

喜欢对生活中的东西做研究,从图像入手。

你可能感兴趣的:(学习记录,python,opencv)