水平垂直分割详细介绍
2015-12-09 21:54
169 查看
垂直分割法:
对图像进行从左到右逐列扫描,累加该列灰度值为0的黑色像素点,由于字符之间的黑色像素点很少,因此可以设定一个阈值,将各列黑色像素点统计小于阈值的作为字符垂直分割的界限,从而完成垂直分割,确定字符的左右边界。
水平分割:
对图像从上向下逐行扫描,累加该灰度值为0的黑色像素点。由于字符之上和之下的黑色像素点很少,同样可以设定一个阈值,将各行黑色像素点统计值小于阈值的作为字符水平分割的界限,从而完成字符水平分割,确定字符的上下边界。
A=imread('C:\Users\smh\Desktop\验证码\4.jpg');
A=rgb2gray(A);
[m,n]=size(A);
value = 200;
B = zeros(m,n);
for i = 1:m
for j = 1:n
if A(i,j)<value
B(i,j) = 255;
end
end
end
imshow(B);
C=B(9:45,31:184);
figure,imshow(C);
[M,N]=size(C);
col(1,N)=0;
for j=1:N
for i=1:M
col(j)=col(j)+C(i,j);
end
end
x=1:N;
y=col;
figure;bar(col);
[M,N]=size(C);
row(M,1)=0;
for i=1:M
for j=1:N
row(i)=row(i)+C(i,j);
end
end
x=1:M;
y=row;
figure;bar(row);bar可以输出图像
对图像进行从左到右逐列扫描,累加该列灰度值为0的黑色像素点,由于字符之间的黑色像素点很少,因此可以设定一个阈值,将各列黑色像素点统计小于阈值的作为字符垂直分割的界限,从而完成垂直分割,确定字符的左右边界。
水平分割:
对图像从上向下逐行扫描,累加该灰度值为0的黑色像素点。由于字符之上和之下的黑色像素点很少,同样可以设定一个阈值,将各行黑色像素点统计值小于阈值的作为字符水平分割的界限,从而完成字符水平分割,确定字符的上下边界。
A=imread('C:\Users\smh\Desktop\验证码\4.jpg');
A=rgb2gray(A);
[m,n]=size(A);
value = 200;
B = zeros(m,n);
for i = 1:m
for j = 1:n
if A(i,j)<value
B(i,j) = 255;
end
end
end
imshow(B);
C=B(9:45,31:184);
figure,imshow(C);
[M,N]=size(C);
col(1,N)=0;
for j=1:N
for i=1:M
col(j)=col(j)+C(i,j);
end
end
x=1:N;
y=col;
figure;bar(col);
[M,N]=size(C);
row(M,1)=0;
for i=1:M
for j=1:N
row(i)=row(i)+C(i,j);
end
end
x=1:M;
y=row;
figure;bar(row);bar可以输出图像
相关文章推荐
- 浏览器-01 基础介绍
- java.uti.Date与java.sql.Date 区别
- 做题目时常用的一些C函数
- UVA 10034 - Freckles
- smooth streaming介绍
- VC操作Web Browser的若干技巧
- OC - 第八章(一) 属性
- 证券挂单时间
- 枚举
- 在Navicat premium上创建的SQL Server数据库,实现用PHP连接(即php连接微软MSSQL)
- 加速Android Studio/Gradle构建
- Actor模型浅谈
- rails的Model映射到sqlite3的常用命令
- A Guide For Troubleshooting Workflow Notification Emails - Inbound and Outbound [ID 831982.1]
- mySQL中删除unique key的语法
- android,java代码设置背景色
- 实战c++中的string系列--指定浮点数有效数字并转为string
- 转载 关于接私活
- 开贴纪念
- 实战c++中的string系列--指定浮点数有效数字并转为string