模板比较的车牌识别算法的研究与实现(6)
山东轻工业学院2012届本科生毕业设计(论文)
图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小:
G?Gx?Gy22 公式(4-5)
然后可用以下公式计算梯度方向。
?Gy??arctan??G?x???? 公式(4-6)
在以上例子中,如果以上的角度?等于零,即代表图像该处拥有纵向边缘,左方较右方暗。
2、代码实现
int[] marginalMx = { -1, 0, 1, -2, 0, 2, -1, 0, 1 }; //sobel模板 int[] marginalMy = { 1, 2, 1, 0, 0, 0, -1, -2, -1 }; int[,] dlta = new int[nHeight, nWidth];
for (int y = 0; y < nHeight; ++y) //sobel算子 {
for (int x = 0; x < nWidth; ++x) {
if (!(x <= 0 || x >= nWidth - 1 || y <= 0 || y >= nHeight - 1)) {
pp = p; Sx = 0; Sy = 0;
for (int i = -1; i <= 1; i++) for (int j = -1; j <= 1; j++) {
pp += (j * 3 + stride * i);
Sx += pp[0] * marginalMx[(i + 1) * 3 + j + 1]; Sy += pp[0] * marginalMy[(i + 1) * 3 + j + 1]; pp = p; }
m[y, x] = (int)(Math.Sqrt(Sx * Sx + Sy * Sy)); if (m[y, x] > valve / 2) //增强白点
19
山东轻工业学院2012届本科生毕业设计(论文)
{
if (p[0] > 240) {
m[y, x] += valve; }
else if (p[0] > 220) {
m[y, x] += (float)(valve * 0.8); }
else if (p[0] > 200) {
m[y, x] += (float)(valve * 0.6); }
else if (p[0] > 180) {
m[y, x] += (float)(valve * 0.4); }
else if (p[0] > 160) {
m[y, x] += (float)(valve * 0.2); } } float tan; if (Sx != 0) {
tan = Sy / Sx; }
else tan = 10000;
if (-0.41421356 <= tan && tan < 0.41421356)//角度为-22.5度到22.5度之间
{
dlta[y, x] = 0; }
else if (0.41421356 <= tan && tan < 2.41421356)//角度为22.5度到67.5度之间
20
山东轻工业学院2012届本科生毕业设计(论文)
{
dlta[y,x]=1; }
else if (tan >= 2.41421356 || tan < -2.41421356)//角度为67.5度到90度之间或-90度到-67.5度
{
dlta[y,x]= 2; 3、效果图
} else {
dlta[y, x] = 3;//m[y,x] = 0; } } else
m[y, x] = 0; p += 3; if (m[y, x] > 0) {
sumCount++; sumM += m[y, x]; } } }
图4-6 Sobel边缘检测后的图像
21
山东轻工业学院2012届本科生毕业设计(论文)
4、结果分析
Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确地边缘方向信息,边缘定位精度不够高,但对于车牌的粗略定位还是能起作用的,效果比较好,尤其是对高斯滤波过后的图片。
4.2.2 车牌定位分割 1、原理
采用纹理跳变进行扫描,行扫描法是利用了车牌的连续特性。车牌区域有连续7个字符,而且字符与字符之间的距离在一定范围内。定义从目标到背景或者从背景到目标为一个跳变。牌照区域相对于其它非车牌区域跳变多,而且间距在定范围内和跳变次数大于一定次数,并且连续满足上述要求的行要达到一定的数目。
按从下到上的顺序扫描,对图像的每一行进行从左向右的扫描,碰到跳变点记录下当前位置,如果某行连续20个跳变点以上,并且前一个跳变点和后一个跳变点的距离在30个像素内,就记录下起始点和终止点位置,如果连续有10行以上这样的跳变点,则认为该区域就是车牌预选区域。
本文先对图片从头扫描到底,对符合规律跳变的点存入数组countMatch,也记入行列数至数组mark;对数组countMatch进行去噪,除去不符合连续跳变的地方和上半部分面积;对数组countMatch进行2*6的粗定位;通过处理定位车牌四边,并在图上做出标记,分割出车牌区域并显示。
2、代码实现
if (m[y + i, pWH - 1] > 0 && m[y + i, pWH] <= 0)//白-->黑 {
pWHR = pWH - 1; if (pWL != pWHL) {
if ((Wmin <= (pWR - pWL) && (pWR - pWL) <= Wmax) || (Bmin <= (pWHL - pWR - 1) && (pWHL - pWR - 1) <= Bmax) || (Wmin <= (pWHR - pWHL) && (pWHR - pWHL) <= Wmax))
{
if (-pWL + pWHR < 30) //记录该点 {
double rate1 = Wmax / (Math.Abs((pWR - pWL) -
22
山东轻工业学院2012届本科生毕业设计(论文)
(Wmax - Wmin)) / 2 + 1);
double rate2 = Wmax / ( …… 此处隐藏:741字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




