function Touying(g)
f=rgb2gray(g);
% [m n]=size(f);
[row col]=size(f);
% T=graythresh(f)
% T=T*255
% for i=1:row
% for j=1:col
% if(f(i,j)>T)
% f(i,j)=255;
% else f(i,j)=0;
% end
% end
% end
f=im2bw(f,0.85);
figure,imshow(f);
a=zeros(row,1);
b=zeros(col,1);
% h=fspecial('average',3); %均值滤波器
% f=im2bw(round(filter2(h,f)));
% imshow(f)
for i=1:row
for j=1:col
a(i)=a(i)+f(i,j);%横向投影
end
end
% for j=1:col
% for i=1:row
% b(j)=b(j)+f(i,j);%纵向投影
% end
% end
% figure,plot(1:col,b)
%%以上是白色像素点在行列里面的投影
%%%%%%%%%%%%%%原版%%%%%%%%%%%%%%
% for i=1:row%从上往下
% if (a(i)>60)%横向投影大于50的地方进行切割
% break;
% end
% end
% p=i;%记录此时的值
% for i=row:-1:1
% if (a(i)>60)
% break;
% end
% end
% q=i;
%%%%%%%%%%%自己改版%%%%%%%%%%%%%
c=0;d=0;
for i=1:row%从上往下
if (a(i)>50)%横向投影大于50的地方进行切割
c=c+1;
if(c>20)
break
end
end
end
p=i-20;%记录此时的值
for i=row:-1:1
if (a(i)>50)
d=d+1;
if(d>20)
break
end
end
end
q=i+20;
f=f(p:q,:);
%%%%%%%%改版结束,成功%%%%%%%%%
figure,imshow(f)
%%%%%%%%继续新增%%%%%%%%%%%
x=0;y=0;
[row1 col1]=size(f);
for j=1:col1
for i=1:row1
b(j)=b(j)+f(i,j);%纵向投影
end
end
figure,plot(1:col1,b)
for j=1:col1%从左往右
if (b(j)>7)%纵向投影大于50的地方进行切割
x=x+1;
if(x>15)
break
end
end
end
m=j-20;
for j=col1:-1:1%从右往左
if (b(j)>7)%纵向投影大于50的地方进行切割
y=y+1;
if(y>15)
break
end
end
end
n=j+20;
m,n,col1,row1
f=f(:,m:n);
figure,imshow(f);
%plot(1:row,a),figure,plot(1:col,b)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% wide=0;
% flag=0;
% if sum(f(:,wide+1))~=0
% flag=1;
% wide=wide+1;
% end
% if flag==1
% while sum(f(:,wide+1))~=0
% wide=wide+1;
% end
% end
% if (wide<10) % 认为是干扰
% f(:,[1:wide])=0;
% end
%%%%%%%%%%第二改版%%%%%%%%%%%%%%%%
% figure,imshow(f)
c=zeros(16);
k=1;
if (k<17)
for i=(c(k)+1):n
if (mod(k,2))
if (b(i)>1)%投影的阈值为3
c(k)=i;
k=k+1;
end
else if (b(i)<1)
c(k)=i;
k=k+1;
end
end
end
end
% c(1),c(2),c(3),c(4),c(5),c(6),c(7),c(8),c(9),c(10),c(11),c(12),c(13),c(14) z1=f(1:end,c(1):c(2));
z2=f(1:end,c(3):c(4));
z3=f(1:end,c(5):c(6));
z4=f(1:end,c(7):c(8));
z5=f(1:end,c(9):c(10));
z6=f(1:end,c(11):c(12));
z7=f(1:end,c(13):c(14));
% z8=f(1:end,c(15):c(16));
figure,
subplot (241) ,imshow(z1) ,title ('one') ;
hold on
subplot (242) ,imshow(z2) ,title ('two') ;
subplot (243) ,imshow(z3) ,title ('three') ;
subplot (244) ,imshow(z4) ,title ('four') ;
subplot (245) ,imshow(z5) ,title ('five') ;
subplot (246) ,imshow(z6) ,title ('six') ;
subplot (247) ,imshow(z7) ,title ('seven') ;
%subplot (248) ,imshow(z8) ,title ('eight') ;
%imwrite(z1,'z1.jpg')
%imwrite(z2,'z2.jpg')
%imwrite(z3,'z3.jpg')
%imwrite(z4,'z4.jpg')
%imwrite(z5,'z5.jpg')
%imwrite(z6,'z6.jpg')
%imwrite(z7,'z7.jpg')
%imwrite(z8,'z8.jpg')

  这段代码经过几次修改,还是失败告终,不知道是不是投影出现了问题。不过如果阈值调得够好的话,是能切出字符的。

matlab 车牌分割的算法的更多相关文章

  1. 基于MATLAB的人脸识别算法的研究

    基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...

  2. 前端车牌识别SDK算法提取

    同行业中,别人标配有的产品我有,别人没有的产品我们也有,如此才能增强竞争力,通过优化创新,前端车牌识别SDK功能,性能上,都是行业NO.1的水平.车牌识别sdk这个用于越来越多人集成了,汽车保有量日益 ...

  3. 非刚性图像配准 matlab简单示例 demons算法

    2011-05-25 17:21 非刚性图像配准 matlab简单示例 demons算法, % Clean clc; clear all; close all; % Compile the mex f ...

  4. 图片像素对比OpenCV实现,实现人工分割跟算法分割图像结果的对比

    图片对比,计算不同像素个数,已经比率.实现人工分割跟算法分割图像结果的对比,但是只能用灰度图像作为输入 // imageMaskComparison.cpp : 定义控制台应用程序的入口点. // / ...

  5. 基于MATLAB的腐蚀膨胀算法实现

    本篇文章要分享的是基于MATLAB的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作. 什么是二值图像 ...

  6. MATLAB粒子群优化算法(PSO)

    MATLAB粒子群优化算法(PSO) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.介绍 粒子群优化算法(Particle Swarm Optim ...

  7. 29 基于PCL的点云平面分割拟合算法技术路线(针对有噪声的点云数据)

    0 引言 最近项目中用到了基于PCL开发的基于平面的点云和CAD模型的配准算法,点云平面提取采用的算法如下. 1 基于PCL的点云平面分割拟合算法 2 参数及其意义介绍 (1)点云下采样 1. 参数: ...

  8. Matlab实现K-Means聚类算法

    人生如戏!!!! 一.理论准备 聚类算法,不是分类算法.分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类.聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类. ...

  9. matlab下K-means Cluster 算法实现

    一.概念介绍 K-means算法是硬聚类算法,是典型的局域原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则.K-means算法以欧 ...

随机推荐

  1. Android Studio项目目录结构介绍——android菜鸟成长之路

    在Android Studio中,提供了以下几种项目结构类型 我们一般常用的有以下两种结构: Project 结构类型 app/build/ app模块build编译输出的目录 app/build.g ...

  2. SQLiteDeveloper破解

    Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 下载地址: http://w ...

  3. OpenMP共享内存并行编程详解

    实验平台:win7, VS2010 1. 介绍 平行计算机可以简单分为共享内存和分布式内存,共享内存就是多个核心共享一个内存,目前的PC就是这类(不管是只有一个多核CPU还是可以插多个CPU,它们都有 ...

  4. storyboard tabbarcontroller设置tab的图片

    在storyboard里逐项设置了图片,咦,怎么是颜色?别急,慢慢来 找到你的tabbarcontroller指向的viewcontroller,在viewdidload里做如下事,搞定 - (voi ...

  5. 矩阵分解ALS方法

    目标函数 优化目标函数 利用坐标下降法,依次更新u和v的值.u和v的先后顺序无所谓,只要保证两者是交替更新的就好.这种方法又称为alternating least squares(ALS). 增加偏置 ...

  6. GithubPage 的简单使用

    这是我第一次写博客,主要是记录自己前端学习的经历.这次写一下GitHubpage 的简单使用.我用这里并没有想挂博客,主要是挂自己的一些小作品应用到简历中. 第一步: 首先先注册Github账号,创建 ...

  7. Axis2使war包发布为WebService

    首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...

  8. 【Cocos2d-x 3.x】内存管理机制与源码分析

    侯捷先生说过这么一句话 :  源码之前,了无秘密. 要了解Cocos2d-x的内存管理机制,就得阅读源码. 接触Cocos2d-x时, Cocos2d-x的最新版本已经到了3.2的时代,在学习Coco ...

  9. ASP.NET Core (Database First)

    CREATE DATABASE [EFCore_dbfirst] GO USE [EFCore_dbfirst] GO CREATE TABLE [Blog] ( [BlogId] int NOT N ...

  10. 在AndroidStudio不能找到so文件问题:couldn't find libweibosdkcore.so

    解决步骤已经写到我的公众号,二维码在下面. 欢迎观看我的CSDN学院课程,地址:http://edu.csdn.net/course/detail/2877 本人联系方式: 更多精彩分享,可关注我的微 ...