: p# R- ^7 b7 }& ~8 I; P. O+ |%进行像素灰度统计; - s1 y, z" a8 S
! u- }/ E9 _0 P0 U
s = zeros(1,256);%统计各灰度数目,共256个灰度级 # ?2 r0 Q$ X& A4 S3 L0 b, \* k! @& C! h
%绘制直方图 ; m! X) X4 l. P( x' T* s& G' {1 D! d& q- O- k9 L, H, t6 @' }6 x
gp=zeros(1,256); 7 ]" A& _: r. @) N, p, x7 t( O* j& t* o
for k=0:255 , { C% B5 S6 z1 M7 e+ @( z# ~! h7 q2 X( O# q
gp(k+1)=length(find(I==k))/(height*width);7 |( m1 M) v. z0 F2 p
- Q' y9 K. t1 K5 `; H7 s4 Z6 W! ~0 Eend 0 B8 j) {! P9 d' v- m( d# F8 p {% m$ @0 b' D
for i = 1:height 0 D' l9 ?" W; g9 v$ I u% ~% V * a; _, i$ [7 |( g4 K* r3 P for j = 1: width # W1 \; z: x! V/ y$ G
# T; t: b7 ?- I
s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一 : H [. K9 {, `- q% P) K
3 O- n, ]+ F. a- U+ A1 O: Z8 _" c end : [( n: T9 v, h
W2 n# m% s& bend , L: y) _# X* o- G7 Z. @6 P8 M- O2 Y8 H6 G1 ^
%计算灰度分布密度 8 K! Q' U& E7 ~9 L 0 E7 X$ B/ _7 _% w- @p = zeros(1,256); . z, p- g! m0 W i5 g" g6 k0 P( w. M9 T* O
for i = 1:256 + L+ u! [( g0 M9 X# q4 b. L4 ^' Z( N, N, @: j
p(i) = s(i) / (height * width * 1.0); 6 m" a6 H t8 I2 G- R) ~ _/ d% D0 S, ^
end " y5 D! V- [' |; Y
. A! q1 W/ M2 p# }$ L1 B: @" y
%计算累计直方图分布 9 G8 b! E$ s4 D8 o
4 N! _, J) a" Z5 K9 e: v" bc = zeros(1,256); , D, @, ~. g: @! W, \7 U) l
7 {* i* @& E3 ?& ^
c(1) = p(1);! P* M" z6 U0 \# u" w# K" _
. L: \) \, {. ?; N" B. R }
for i = 2:256 . e. F7 {! \9 p9 T4 d7 z5 Z
& \8 G! V1 ^$ l% H# H! k1 C+ L. j/ I c(i) = c(i - 1) + p(i); ( ] X! V- a1 W( d
/ h; G& B0 D5 x
end 9 S: C( ]/ S: I! g
9 Q, |: ~8 Y! m4 b8 |
%累计分布取整,将其数值归一化为1~256 3 a, M) D' M$ x$ K# E6 c5 u I f2 P8 M H6 vc = uint8(255 .* c + 0.5); & G- r# ?& l; d1 C; W- Q. Y- ^4 \5 p" a
%对图像进行均衡化2 b0 R5 X, L5 u% \
/ s7 B! G% {9 D: A, k. m3 Lfor i = 1:height ; Y- l6 x( P- V# {4 K( r
! e" y+ O8 A3 L- D
for j = 1: width P+ `( t8 ~8 v n. V
$ ]- B P' J: f" F
Ir(i,j) = c(I(i,j)+1); ) {) Q- X- \& ], |. Z
8 @) ~# y' B5 y end . V8 b! p0 T# b! z" B2 w: b* c7 l
% w' X* P, L% v1 A, a# X* u/ [0 {+ W/ Wend g& y0 W; z2 G; B( ^6 N- ~; c: L( o l" Y( O" ?2 V3 S
dis(:,:,1)=Ir;9 ]# y8 c, C( M: O7 m5 t! j: C
7 _7 d7 E( \2 @7 b) c C$ f
%subplot(122) $ {# k( m# Q4 f0 g3 F
2 t9 ~0 B, {3 ~* {: _%imshow(Ir)%显示均衡化后的图像) D: N9 w6 s7 Q4 V J1 n! h4 W
" V* k/ E5 q0 ~1 ~
%对G通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用2 W" j- G- F1 X6 q4 E4 c5 W
2 [: l2 T) N, ?& T3 |
I=t(:,:,2); + c$ y- Y" m# E* x T$ w) e3 j5 W[height,width] = size(I); & S& F, D1 C! G1 L& t3 _& |# y 3 e t) L, ]6 R; W7 B4 o % ?; q6 h3 Y+ H/ n6 B: V: [7 \) Z5 K' n+ M: n6 g
%下面使用直方图均衡化进行处理 8 @+ p( O, d* H: h # ~) O: B6 u8 F. N%进行像素灰度统计; . b, N0 V P5 g# q3 J( Z, L. Z" G7 M3 Y% O, ?
s = zeros(1,256);%统计各灰度数目,共256个灰度级 $ i, \; {! P* _' ]- ^, |. n
0 G# W9 I/ [) S+ ~* X. J
%绘制直方图 , |7 n$ d M2 ~9 x2 v: G% \* L9 i. J% k+ d+ a) p8 c& [
gp=zeros(1,256);+ I* U6 T" \% j% |0 E
, \9 ]. d- ]9 \ r- t1 Cfor k=0:255" g' Q, E# h6 g) u% ]- x
( B. u# @8 s$ \( N7 X. w N
gp(k+1)=length(find(I==k))/(height*width);$ o5 |' o& U/ O1 }3 A! `
; Q) Z) r5 d a B/ k. ]4 send * _ g9 e0 N- H- Z9 t- a ; t2 T# W! y u; ]0 A& gfor i = 1:height , b, a! Q9 [- U5 K3 G( Q* K0 |9 b
" b8 ~3 ]; z G
for j = 1: width 2 |' x' v! S( C3 B. l7 d" s
3 j6 ]+ J" Q& y. {7 d7 H+ Q s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一 2 T0 C7 U6 x& A& d' M5 M 2 b& s! ^$ X1 ?; j/ ?- U end 4 K8 d8 j s* O/ L# J& g2 l/ R' F' [
end / i3 [% t5 [$ e- d4 G9 y0 k( m1 }3 q+ t" d0 a9 j
%计算灰度分布密度 / y* B, ~5 `5 V
, z' F/ [0 B3 }9 u4 s( f
p = zeros(1,256); ) Y" r. ~! J3 B# ^8 k
# q8 N2 s U! |( n: C9 ^& u/ ffor i = 1:256 # u4 S6 K$ A5 p9 c; j) [ 2 x9 v- v \$ n/ w! O4 O+ [ p(i) = s(i) / (height * width * 1.0); 3 C8 j6 y @: P% V3 s+ b @ # ]$ S$ _- d7 H1 lend ; ~. v. u: }2 _. r% c# p& H6 s& j) G
%计算累计直方图分布 - I7 ?5 Z8 t9 d+ R _5 J$ u# _$ b/ y4 J* X$ O( o: X
c = zeros(1,256); ) G- {8 R6 k0 G# h0 |! f* {* @) ^) m, b4 V# S* I; d
c(1) = p(1);/ e) K+ L0 O& i$ i: }: ~! e4 b
6 B: _: a1 h$ ]1 }3 a1 E" M6 ]
for i = 2:256 3 |4 `: H1 O6 f" ~' L5 P( o) w
/ F- E4 _+ i6 L. b A6 E1 m c(i) = c(i - 1) + p(i); 1 Q* U1 g& F9 V$ q+ d6 c2 ?
1 W1 D- s; C ~) l8 Y
end , a6 W: b+ i" m* K& u
" d/ o5 e4 i; t9 t Q%累计分布取整,将其数值归一化为1~256 : {# D7 e- t' \$ u0 n; B" W! J, w; H. Q2 `1 U
c = uint8(255 .* c + 0.5); ; Y) E( w- O% O! G* y* T# D& o # y6 M5 C7 {" q0 z%对图像进行均衡化 2 i* M. Q+ E) @! s : S) ?8 X, x* sfor i = 1:height 4 ?, \+ R+ D' h3 b3 `3 i% B4 B# ~: \! r0 Z9 ] ]& p( m, @
for j = 1: width / J+ I, N& ^! r" L4 Q6 ^
% W t# r7 R* k$ h" Q9 \- o
Ig(i,j) = c(I(i,j)+1); ) S, O/ C* T W0 O) Y% v7 i) z1 |3 z! \: u* y2 q
end 4 j s0 R3 [0 j% e" ` A+ o2 y: `) b7 E- J T# Y: h- P4 G- S' s
end ! c" S& Q, X& q( h; j6 Y1 y & J4 m$ O* T3 X! v# t* Q%subplot(122) 9 n& m3 z k. C" S3 k) U6 D Y6 q% D0 x% `$ p
%imshow(Ig)%显示均衡化后的图像! N3 s! c7 \: I0 Q! Z, z
$ e$ k' v3 k( B& R- X: d' Odis(:,:,2)=Ig; 3 q- u5 W) c. ]4 f l, C $ S2 D& Z1 f6 ~! M. E/ \3 F, R# e) Q! S9 Q5 c. l
: N+ b* X$ \0 C" b* o2 \. P, u! ~%对B通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用 4 g9 T# e- L$ x2 _- j. D6 F 4 Y. s" \/ _ G/ CI=t(:,:,3);( g5 W- G& V% p7 y1 Z! B