|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
先看处理结果+ U" D! Y2 k6 A6 f8 H6 T( B
3 Y9 f$ z! @ W! {( C) h% r
9 B; a- A0 }9 f0 ?3 I& W, a$ O
# o+ o. U( W6 t, u" z, f
简单说一下实现思路:
. @' }/ C" L3 [* `1 r, U: E- @9 T, Z/ w/ `1 P5 I. u% @4 d
读取图片,转灰度,计算灰度直方图,估算阈值(这里的阈值计算很重要,经过阈值算法,选取一个最恰当的阈值),之后二值化。显示图像即可。后面阈值的计算补更。 1 S+ v% f( d- Z" v
! _" O- P3 w9 i" h9 x1 j, ~- %%车牌
- clear all
- clc
- PS=imread('chepai.png');
- subplot(1,2,1);
- imshow(PS)
- title('原图')
- p=rgb2gray(PS);
- subplot(1,2,2)
- imshow(p)
- title('原灰度图')
- [m,n]=size(p);
- GP=zeros(1,256);
- for k=0:255
- GP(k+1)=length(find(p==k))/(m*n); %计算每级灰度出现的概率,将其存入GP,这里的find函数寻找
- %与0-255相等的个数,然后通过length函数返回一个数,再除以
- %总的像素点个数,就是第0个灰度数据出现的次数,放入第一个
- %里面
- end
- figure
- subplot(1,2,1);
- bar(0:255,GP,'g')
- xlabel('灰度值')
- ylabel(' 出现概率')
- title('原灰度直方图')
- max_index=[];
- for i=3:length(GP)-2
- if((GP(i)>=GP(i+1))&(GP(i)>=GP(i-1)))&((GP(i+1)>=GP(i+2))&(GP(i-1)>=GP(i-2)))
- max_index(end+1)=i-1;%数组的扩展,有n个元素,那么第n+1个用来存放数据i-1(因为是从0开始的,所以-1)
- end
- end
- possible=GP(max_index);
- [max_value,index]=max(possible);%前者存值,后者放位置
- TT=max_index(index)-2;%取出数据
- [m,n]=size(p);
- R=zeros(m,n);
- for i=1:m
- for j=1:n
- if p(i,j)<TT
- R(i,j)=256;
- else R(i,j)=0;
- end
- end
- end
- subplot(1,2,2);
- imshow(R);
- title('二值图');
8 R" Z+ f8 b( A5 u, k
9 t( U( z4 N6 g; M1 }8 u* d5 k9 R7 W% g/ F
+ }( d# Z) g0 `, u
3 e5 S3 f8 e4 C5 S+ @9 A* P; a$ ^6 S; N+ i9 ~: i8 ]3 e
. {# t" ^& Q$ ]; k# y/ j
3 _3 ]1 {- n6 r7 M7 q
0 O' X7 S3 P: s: M; ^" ~3 A
. T! x& P: n' a0 m2 y0 U2 H& E, y) r1 b& @' p
( z: R# n) l( V6 y a: I: Z( V( ]7 _
|
|