opencv 视觉项目学习笔记(二): 基于 svm 和 knn 车牌识别
车牌识别的属于常见的 模式识别 , 其基本流程为下面三个步骤: 1) 分割: 检测并检测图像中感兴趣区域; 2)特征提取: 对字符图像集中的每个部分进行提取; 3)分类: 判断图像快是不是车牌或者 每个车牌字符的分类。 车牌识别分为两个步骤, 车牌检测, 车牌识别, 都属于模式识别 。 基本结构如下: 一、车牌检测 1、车牌局部化(分割车牌区域),根据尺寸等基本信息去除非车牌图像; 2、判断车牌是否存在 (训练支持向量机 -svm, 判断车牌是否存在)。 二、车牌识别 1、字符局部化(分割字符),根据尺寸等信息剔除不合格图像 2、字符识别 ( knn 分类) 1.1 车牌局部化、并剔除不合格区域 vector<Plate> DetectRegions::segment(Mat input) { vector <Plate> output; // 转为灰度图,并去噪 Mat img_gray; cvtColor(input, img_gray, CV_BGR2GRAY); blur(img_gray, img_gray, Size( 5 , 5 )); // 找垂直边 Mat img_sobel; Sobel(img_gray, img_sobel, CV_8U, 1 , 0 , 3 , 1 , 0 , BORDER_DEFAULT); // 阈值化过滤像素