Opencv识别车牌

这篇具有很好参考价值的文章主要介绍了Opencv识别车牌。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Opencv识别车牌

#encoding:utf8
import cv2
import numpy as np
Min_Area = 50
#定位车牌
def color_position(img,output_path):
colors = [#([26,43,46], [34,255,255]), # 黄色
([100,43,46], [124,255,255]), # 蓝色
([35, 43, 46], [77, 255, 255]) # 绿色
]
hsv =cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
for (lower, upper) in colors:
lower = np.array(lower, dtype=“uint8”) # 颜色下限
upper = np.array(upper, dtype=“uint8”) # 颜色上限

    # 根据阈值找到对应的颜色
    mask = cv2.inRange(hsv, lowerb=lower, upperb=upper)
    cv2.imshow("mask", mask)
    cv2.waitKey(0)        
    output = cv2.bitwise_and(img, img, mask=mask)
    cv2.imshow("output", output)
    cv2.waitKey(0)         
    k = mark_zone_color(output,output_path)
    if k==1:
        return 1
    # 展示图片
    #cv2.imshow("image", img)
    #cv2.imshow("image-color", output)
    #cv2.waitKey(0)
return 0

def mark_zone_color(src_img,output_img):
#根据颜色在原始图像上标记
#转灰度
gray = cv2.cvtColor(src_img,cv2.COLOR_BGR2GRAY)
cv2.imshow(“gray”, gray)
cv2.waitKey(0)
#图像二值化
#ret,binary_OTSU = cv2.threshold(gray,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
ret,binary = cv2.threshold(gray,0,255,cv2.THRESH_BINARY)
cv2.imshow(“binary”, binary)

cv2.waitKey(0)     
#轮廓检测
contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)   
drawing = img.copy()
if len(contours)>0:
    cv2.drawContours(drawing, contours, -1, (0, 0, 255), 3) # 填充轮廓颜色
    cv2.imshow('drawing', drawing)
    cv2.waitKey(0)
#print(contours)

temp_contours = [] # 存储合理的轮廓
car_plates=[]
if len(contours)>0:
    for contour in contours:
        if cv2.contourArea(contour) > Min_Area:
            temp_contours.append(contour)
        car_plates = []
        for temp_contour in temp_contours:
            rect_tupple = cv2.minAreaRect(temp_contour)
            rect_width, rect_height = rect_tupple[1]
            if rect_width < rect_height:
                rect_width, rect_height = rect_height, rect_width
            aspect_ratio = rect_width / rect_height
            # 车牌正常情况下宽高比在2 - 5.5之间
            if aspect_ratio > 2 and aspect_ratio < 5.5:
                car_plates.append(temp_contour)
                #rect_vertices = cv2.boxPoints(rect_tupple)
                #rect_vertices = np.int0(rect_vertices)
        if len(car_plates)==1:
            #oldimg = cv2.drawContours(img, [rect_vertices], -1, (0, 0, 255), 2)
            #cv2.imshow("che pai ding wei", oldimg)
            #print(rect_tupple)
            break

#把车牌号所在的位置截取出来
if len(car_plates)==1:
    # 方法1 利用轮廓的坐标点来获取左上角 右下角的坐标
    #for car_plate in car_plates:
        ## 左上角的坐标
        #row_min,col_min = np.min(car_plate[:,0,:],axis=0)
        ## 右下角的坐标
        #row_max,col_max = np.max(car_plate[:,0,:],axis=0)
        #cv2.rectangle(img,(row_min,col_min),(row_max,col_max),(0,255,0),2)
        #card_img = img[col_min:col_max,row_min:row_max,:]
        #cv2.imshow("img",img)
    # 方法2,利用外接矩形来定位
    x,y,w,h = cv2.boundingRect(car_plates[0])
    cv2.rectangle(img,(x,y),(x+w, y+h),(0,255,0),2)
    cv2.imshow("img",img)
    cv2.waitKey(0)
    card_img = img[y:y+h,x:x+w,:]
    cv2.imwrite('card_img.jpg',card_img)
    cv2.imshow("card_img.",card_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    return 1
return 0

if name == “main”:
img = cv2.imread(‘…\Opencv-6-datas\cartest.png’)
color_position(img, ‘’)
Opencv识别车牌文章来源地址https://www.toymoban.com/news/detail-425501.html

#encoding:utf8
import  cv2
import numpy as np
Min_Area = 50
#定位车牌
def color_position(img,output_path):
    colors = [#([26,43,46], [34,255,255]), # 黄色
           ([100,43,46], [124,255,255]), # 蓝色
    ([35, 

到了这里,关于Opencv识别车牌的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OpenCV 的车牌识别

    车牌识别是一种图像处理技术,用于识别不同车辆。这项技术被广泛用于各种安全检测中。现在让我一起基于 OpenCV 编写 Python 代码来完成这一任务。 车牌识别的相关步骤 1. 车牌检测:第一步是从汽车上检测车牌所在位置。我们将使用 OpenCV 中矩形的轮廓检测来寻找车牌。如

    2024年02月09日
    浏览(47)
  • opencv机器学习车牌识别系统

    文章目录 0 前言+ 1 课题介绍+ 1.1 系统简介+ 1.2 系统要求+ 1.3 系统架构 2 实现方式+ 2.1 车牌检测技术+ 2.2 车牌识别技术+ 2.3 SVM识别字符+ 2.4 最终效果 3 最后 这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专

    2024年02月05日
    浏览(45)
  • OpenCV实例(八)车牌字符识别技术(三)汉字识别

    相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面: (1)字符笔画因切分误差导致非笔画或笔画流失。 (2)汽车牌照被污染导致字符上出现污垢。 (3)采集所得车辆图像分辨率低导致多笔画的汉字较难分辨。 (4)车辆图像采集时所受光

    2024年02月12日
    浏览(31)
  • OpenCV实例(八)车牌字符识别技术(二)字符识别

    匹配判别是字符识别的基本思想,与其他模式识别的应用非常类似。字符识别的基本原理就是对字符图像进行预处理、模式表达、判别和字典学习。 字符识别一般可分为三个阶段: 第一阶段为初级阶段,主要是应用一维图像的处理方法实现对二维图像的识别。此阶段主要涉

    2024年02月13日
    浏览(32)
  • OpenCV实例(八)车牌字符识别技术(一)模式识别

    影响并导致汽车牌照内字符出现缺损、污染、模糊等情况的常见因素有照相机的性能、采集车辆图像时光照的差异、汽车牌照的清洁度等。为了提高汽车牌照字符识别的准确率,本节将把英文、数字和汉字分开识别。对于英文和数字的识别,采用基于边缘的霍斯多夫距离来进

    2024年02月13日
    浏览(47)
  • OpenCV实战5 车牌号识别

    原文在这里,参考这个进行了改进 感觉学到了很多东西,便在这里作下笔记。 效果: 目录 一、知识点学习: 1. fstream 2. 形态学开操作与形态闭操作 2.1 第一个角度:消除较小的联通区域 vs 弥合较小的联通区域 2.2 第二个角度:消除背景噪音 vs 消除前景噪音 3、approPolyDp函数

    2024年02月01日
    浏览(58)
  • 车牌识别 opencv python(简单版)

    实验目标 使用形态学处理,识别图片中车牌的位置,并识别每个字符的位置 实验原理 1.车牌识别: (1)车牌的背景色是 蓝色 ,所以先提取图中蓝色的部分,转化为二值图像(蓝色部分为1,其余为0)。 (2)再检测 边缘 ,标出边缘的外接矩形,根据此矩形的 长宽比 和面积,就

    2024年02月06日
    浏览(50)
  • OpenCV完结篇——计算机视觉(人脸识别 || 车牌识别)

    scaleFactor调整哈尔级联器的人脸选框使其能框住人脸 官方教程指路 每个特征都是通过从黑色矩形下的像素总和减去白色矩形下的像素总和获得的单个值 级联器模型文件位置 识别嘴就会不精确了 识别鼻子 只要不测口,还是比较准确的 测口准确度太低!!! 安装很简单,这里

    2024年02月19日
    浏览(55)
  • opencv 车牌号的定位和识别+UI界面识别系统

    目录 一、实现和完整UI视频效果展示 主界面: 识别结果界面:(识别车牌颜色和车牌号) 查看历史记录界面: 二、原理介绍: 车牌检测-图像灰度化-Canny边缘检测-膨胀与腐蚀 边缘检测及预处理-膨胀+腐蚀组合-再一次膨胀-车牌识别 图像最终处理-字符分割及识别 完整演示视

    2024年02月11日
    浏览(58)
  • 计算机视觉:使用opencv实现车牌识别

    汽车车牌识别(License Plate Recognition)是一个日常生活中的普遍应用,特别是在智能交通系统中,汽车牌照识别发挥了巨大的作用。汽车牌照的自动识别技术是把处理图像的方法与计算机的软件技术相连接在一起,以准确识别出车牌牌照的字符为目的,将识别出的数据传送至交

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包