主要实现对整张图片中.将车牌分割出来.
需要进行

  1. 转换为灰度值
  2. 阈值分割,去除部分区域
  3. 连通域分析
  4. 分割出车牌所在轮廓
#include<opencv2/opencv.hpp>
#include<iostream>
#include<opencv2/highgui/highgui_c.h>
#include<vector>
#include<cstdlib> using namespace cv;
using namespace std;
int main(int argc, char** argv)
{Mat image;image = imread("D://7.jpg");   //读取原图像imshow("原图像", image);Mat gray;cvtColor(image, gray, COLOR_BGR2GRAY);    //转换为灰度图threshold(gray, gray, 151, 0, THRESH_TOZERO);           //阈值分割,去除无关的内容,低于下限置0threshold(gray, gray, 255, 255, THRESH_TOZERO_INV);     //高于上限置0Mat element = getStructuringElement(MORPH_RECT, Size(3, 3));      //形态学滤波 3*3的核morphologyEx(gray, gray, MORPH_CLOSE, element);                    //进行闭运算Mat stats, centroids;                            //连通域分析结果stats:对应各个轮廓的x,y,width,height和面积,centroids:中心点Mat labels = Mat::zeros(image.size(), CV_32S);   //表示当前像素是第几个轮廓int num_label = connectedComponentsWithStats(gray, labels, stats, centroids, 8, 4);   //连通域分析,num_label对于连通域个数for (int i = 0; i < num_label; i++)        //筛选车牌所在连通域,去除其他区域{int area = stats.at<int>(i, CC_STAT_AREA);      //当前连通域区域的面积int width = stats.at<int>(i, CC_STAT_WIDTH);    //宽度int height = stats.at<int>(i, CC_STAT_HEIGHT);   //高度//筛选出车牌所在区域的以外的区域,均不赋予彩色显示,并将其连通域区域的中心点去除//面积,宽度,高度的数值,根据实际车牌的尺寸,加上相机内参数等数据可获得,应保证范围适中;//不知各参数的,可通过原图进行估计if ((area < 6000) | (area > 10000) | (width < 100) | (width > 300) | (height < 20) | (height > 70)){centroids.at<Vec2d>(i, 0) = 0;       //将车牌以外区域的中心点去除,即取消连通域标记continue;}}int w = image.cols;     //原图像像素的列数int h = image.rows;     //原图像像素的行数Mat ROI = Mat::ones(image.size(), image.type());     //车牌提取结果值定义为全黑for (int i = 1; i < num_label; i++) {Vec2d pt = centroids.at<Vec2d>(i, 0);           //各轮廓的中心点int x = stats.at<int>(i, CC_STAT_LEFT);         //各轮廓的左上角x坐标int y = stats.at<int>(i, CC_STAT_TOP);          //各轮廓的左上角y坐标int width = stats.at<int>(i, CC_STAT_WIDTH);    //各轮廓的宽度(x,y)点开始到右下角int height = stats.at<int>(i, CC_STAT_HEIGHT);  //各轮廓的高度(x,y)点开始到右下角int area = stats.at<int>(i, CC_STAT_AREA);      //各轮廓的面积(x,y)点开始到右下角if (pt[0] != 0)          //车牌轮廓的中心点非0{cout << pt << endl;     //打印坐标值//将车牌区域像素提取到ROI(结果图像)中//如车牌图像倾斜,可利用椭圆拟合函数,获得图像角度再进行计算后分割for (int xx = x; xx < x + width; xx++)for (int yy = y; yy < y + height; yy++)ROI.at<Vec3b>(yy, xx) = image.at<Vec3b>(yy, xx);}}imshow("车牌提取结果", ROI); //显示结果waitKey(0);return 0;
}

识别结果为:

opencv车牌区域提取(VS2019 c++)相关推荐

  1. 车牌区域提取(定位)综述及各种算法的优缺点

    车牌区域提取通常也称为车牌区域定位,其目的是从含有车牌的图像中找到车牌区域. 车牌定位的重要性不言而喻,作为车牌识别的第一个步骤,车牌区域的提取成功与否是完成车牌识别的基础也是首要决定因素. 车牌区域 ...

  2. 利用颜色和形态学两种方法进行车牌区域提取的OpenCV代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 2016-7-28日:用MSER算法也实现了车牌 ...

  3. 利用MSER算法提取图像区域(车牌区域)的OpenCV代码~

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我的博客中前面已经写了两种方法来实现车牌区域的提 ...

  4. opencv 九 提取车辆照片中的车牌区域(基于纹理特征)

    一.算法需求 基于基于纹理特征提取车辆照片中的车牌区域 二.问题分析 在车辆照片中提取车牌区域,需要对图像进行系列变化,移除图像的非车牌区域,使车牌区域在图像中变得显著.目前分析发现,在车辆照片中,车 ...

  5. java opencv 提取车牌_opencv-车牌区域提取

    #include "opencv2/highgui/highgui.hpp" #include "opencv2/features2d/features2d.hpp&qu ...

  6. [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子

    由于最近太忙,这篇文章只给出相关代码供大家学习,过一段时间会详细的写一些列Python图像处理的文章,包括各种算法原理.图像识别.图像增强.图像分类.深度学习等.本篇文章主要调用OpenCV库(cv2 ...

  7. python图像识别 车牌_[图像处理] Python+OpenCV实现车牌区域识别

    点击上方蓝色字体,关注我们 15 本篇文章主要调用OpenCV库(cv2)进行车牌区域识别,具体步骤包括: 1.灰度转换:将彩色图片转换为灰度图像,常见的R=G=B=像素平均值. 2.高斯平滑和中值滤 ...

  8. OpenCV区域提取之利用Rect提取在源代码中预先定义好的区域

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 直接上源码和运行结果吧,程序很好读懂,我就不多作 ...

  9. 实战解惑 | OpenCV中如何提取不规则ROI区域

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 什么是ROI ROI是英文Region Of Interest的三 ...

最新文章

  1. java中 int 比较_java中Integer与int的种种比较你知道多少?
  2. 前端学习(583):在console中访问节点
  3. python selenium 环境_配置Python Selenium环境
  4. 一文详解LDA主题模型
  5. 医疗搜索中的query词权重算法探索
  6. java开发常用的工具类_java开发常用工具类
  7. 《设计模式》读懂UML类图
  8. Docker 安装与操作 Mysql 数据库快速入门
  9. CDA I级学习 - CDA I级考试大纲
  10. 创业感悟:低调务实是创业者最可贵的精神
  11. 在手机上Link of class 'Lcom/example/test/MainActivity;' failed
  12. ​手把手教你做个AR涂涂乐 ​
  13. Okra框架(二) 搭建Socket服务器
  14. ​万邦医药在创业板过会:上半年收入约1亿元,陶春蕾母子为实控人​
  15. juniper:SRX-产品简介
  16. 量化交易中,如何快速把股票代码转换成Int整形?
  17. Dom——仿淘宝关闭二维码
  18. 【Scala】学习笔记三——面向对象
  19. Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
  20. 系统对比下FinClip 与 mPaaS

热门文章

  1. VS C1001错误可能的解决方案
  2. 关于python深copy与浅copy的一点理解
  3. 凸优化第五章对偶 5.1 Lagrange对偶函数
  4. 微信小游戏-CocosCreator 基础(一)
  5. 李宏毅老师2022机器学习课程笔记 02 卷积神经网络(CNN)
  6. UPC Participate in E-sports(参加电子竞技)(Biginteger的平方根:二分或牛顿迭代法)
  7. 【Python简明教程十二】Python元组
  8. 海量数据和高并发解决方案
  9. 关于TI账号注册卡在机器人验证那一步
  10. java 浏览器访问图片不显示_[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题...