找回密码
 注册
关于网站域名变更的通知
查看: 387|回复: 1
打印 上一主题 下一主题

用MATLAB仿真基于直方图均衡化的水下激光图像处理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-6-23 15:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用MATLAB仿真基于直方图均衡化的水下激光图像处理
" ]8 R/ o+ r; P9 G9 b2 S* m
' f! ~3 e$ d9 |$ d& h6 r) WMATLAB仿真程序:  k: S3 Q& A5 b! I4 v

4 ?/ n. k2 V- T6 z%{
; m3 t) Y. W  m, h+ i
- P, E! l& H# ?8 O  基于直方图均衡化的水下图像增强(MATLAB仿真)
: \; A) Z5 U( y  ]3 g+ H
: D% x7 q, E+ m  对RGB三个通道分别进行均衡化处理,得到增强之后的图像
' d, `: i/ \( ?6 ]& o3 B& h- S
  实际测试,效果明显,下面
: g) @+ O3 Z$ e' D8 r: n# G  Q- j7 x4 g: J  U6 E2 L. c
  时间:2014年9月11日23:59:01
! O9 P( W; u- y$ t- R# A
6 ?" ]* G( G$ g  整理:天空之恋& m% @0 ~, \  L8 V1 s
& ?; V9 F+ C1 \; J5 [
  地点:桂电
; s! r* M- E% E7 W( s$ ~6 E9 a$ K1 s* I& B& `  [
%}. ]& P8 ~7 G. M3 S! r& c# y, {

6 `) h! w+ |# Mclear;3 Q: z4 b; z( h0 }9 H) T) G7 w

: t. N* N; q* s" N3 w3 p+ Z: W% t# St = imread('wa5.png');  $ Q" q9 n9 c: {$ t; ^/ n! u* W" e

! e2 s; V. `) x6 g. o7 DI=t(:,:,1);
7 S# P* p6 B% v% ~5 }
4 W, L$ k9 `. ]+ `/ K3 Z[height,width] = size(I);  ) t% f: E8 z( ]$ r3 x1 x8 X
# E8 g1 x9 r  p, Y( T1 C
subplot(121);
  G% t8 E- Z) N2 h( \9 o. I, c- q9 U* q1 M/ m- q$ H( }$ b
imshow(t),title('原始图像')%显示原始图像   , u" q" y: z  r( U: o. }6 t; g! K

& e5 l, o$ O' L: S%对R通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用5 @# C6 p+ y. l  h
. X- \& ]- f* f% u  z; u
%进行像素灰度统计;  
8 [8 k0 }7 G; g; B- A6 ^/ e8 H* d& u6 f; l
s = zeros(1,256);%统计各灰度数目,共256个灰度级  5 Y9 E' _2 f2 J& S% r9 Z/ G
4 t  l8 @9 a& \/ e2 i
%绘制直方图% S2 p( i  b5 x* b6 U  w

4 g6 \' W2 o8 Y# W; Wgp=zeros(1,256);3 d1 |( C% p& t6 J

% ~4 r1 W0 V9 i8 Rfor k=0:255) d; `- n3 E3 G+ ?
: m4 s: u% _) N
    gp(k+1)=length(find(I==k))/(height*width);- [3 U0 D4 o; ?( U/ P  k6 {
, b6 S" k/ b, ?; ?: W
end. U7 s8 s7 `$ g& _4 u
7 _* N8 {3 n) M" L8 s: V) K4 e, c8 s
for i = 1:height  ' O: z' n( |+ u6 O4 e% w( V
! ^' @5 z5 W0 H. E
    for j = 1: width  9 a: {( ~4 B# l7 ~( A* E# e1 ^$ D
2 Z9 {7 B* Z% \2 R
        s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一  
  f5 y4 U$ U" W1 n. v8 x: |2 l2 U  m4 a* W6 [. r
    end  
* s! _* a  e! p9 [
0 e8 x) W1 R: }  s! ^  uend  
: s0 K5 q% @' a' k, a# ^! [. v' F8 U
; ~, {1 P: `. G* v& t# }' X- ?8 Z%计算灰度分布密度    K5 {) R% V% P8 x  n/ V  Q# E
/ n1 @: d  p5 Q. |
p = zeros(1,256);  4 [; g% }0 ?, }% @. l) k

% g* W% V  V6 q4 w4 cfor i = 1:256  6 ~. x9 I  B% a  v; e% C+ e
5 J  r% J+ r5 u. n
    p(i) = s(i) / (height * width * 1.0);  
% V; Q% e4 F' M2 E0 d7 H$ x
% d& r; J" C+ C3 N  w' Tend  
- m5 a6 Q' ~6 Z/ u) ~5 _2 K$ N9 ?& R* _
%计算累计直方图分布  ; b1 n+ B6 z7 ?( ^  W1 l# q1 U. g

$ S* ]0 {: c7 d# k: l5 hc = zeros(1,256);  1 B: _) e4 M7 t, z. V- `. _6 ~

1 A$ _/ x% K" J9 I& C7 Vc(1) = p(1);3 j+ q# t1 Q: a0 j. i
; C0 H6 O/ I0 U+ p5 s0 T) z! |8 F
for i = 2:256   0 }* z1 k+ o# `
$ w: Q3 q* g3 H( O2 v
        c(i) = c(i - 1) + p(i);  
6 m9 y+ G- A7 @1 H5 H/ M9 x  b5 a' p. J9 \
end  
3 n& x" H$ s2 u, U
9 F/ ^) v  g$ K; X* A( F$ W%累计分布取整,将其数值归一化为1~256 / J4 J: |" P, l: H: l" w- c0 m
; X- O, b$ n  b9 J0 ~
c = uint8(255 .* c + 0.5);  
9 L2 ]( E- X$ n9 m9 a  v6 W) ~
9 z5 O/ Q. T- L& w%对图像进行均衡化
) |8 Z7 z* Q4 e* U
# V# V* X" W: z" |9 @for i = 1:height  
) @+ o1 }+ F; E. P( B8 A( z9 f. U2 s% v
    for j = 1: width  
- Q8 `; {( w! |/ _, h$ |% ]  |: c* V# U
        Ir(i,j) = c(I(i,j)+1);  7 d8 t- t5 M; k/ E/ J# l
7 M+ m/ Q. O- c1 ^8 k$ O
    end  0 e3 p" f$ \$ ?2 M1 d
: y: X( q* }* g; l
end    ^7 x2 m5 o- m* m+ L

- j/ Y# S, s  ~0 q0 m8 q& qdis(:,:,1)=Ir;
6 }6 f; v7 D! J: K) u) W: c0 n: k% Z% n7 w. B
%subplot(122)  
0 z) |' D$ C. m+ a2 C+ W/ V  D: G3 _2 d) _% b
%imshow(Ir)%显示均衡化后的图像
! u& ?# E% e7 I& I4 u4 |# j' d
2 ^) c1 P& ^' u$ L%对G通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用% j. v. N# X8 x+ K( x
  B$ v- U1 {2 f3 U* B3 |% b- W4 n: I
I=t(:,:,2);
6 v& _* [" i! f* R4 z* h+ k3 U& p# J; C$ g& {1 J
[height,width] = size(I);  7 c* f- g2 t- G6 y! m9 z% u
5 L- a- e) d7 A
% C, h7 |" K1 Y2 Z4 U
8 U! s4 }6 v0 c/ K4 j  E: F
%下面使用直方图均衡化进行处理
6 N$ i( v1 E; l% c. q! d& i5 P6 Q. W5 Z% R( }
%进行像素灰度统计;  
4 w6 Z/ f3 a, Q* y0 |$ z1 j0 P
1 B) j) C$ n/ K4 Qs = zeros(1,256);%统计各灰度数目,共256个灰度级  
' S! y& y' c) ]' x" j% V: J" V- F- J; ~) z8 ?
%绘制直方图( X, K/ X/ }* n
& ?4 b! k" |: l
gp=zeros(1,256);* I/ ^2 Y  u% x( Z$ X6 F
. p9 {( J! R' A. m3 ~
for k=0:2555 I( O, C& O! V. x. Y
( U* N! \; ]7 g$ @
    gp(k+1)=length(find(I==k))/(height*width);
# `7 b2 P, k& v7 ^4 }% N  M1 F9 p& Q/ A( ?; v9 z2 A
end
4 o1 j; i4 J+ w! n, H- U; g; `7 t" q
for i = 1:height  / H: o' C# r( S9 Z- _

% X- M+ y& F& o    for j = 1: width  
- O, r! @& h8 r- G" k7 `* m) \' p( a( R( k
        s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一  7 r: O, Z8 p! f! e0 ~$ Q# m
! L1 w% H: l0 I* w5 D  j
    end  9 W& v7 H- R$ x% U) \) i

, s7 n1 L) @) f- q3 f5 nend  
! P9 n6 b; }4 L6 q9 A
" r% M: h; e: ]) W. Z0 K5 x%计算灰度分布密度  . W: N" p+ i& [9 N* Z' ]$ e
  m2 {; o3 E& k
p = zeros(1,256);  
! `# x" C+ ?( F  J# Q9 a* o3 s* a$ T, n% ?
for i = 1:256  * o( {+ D/ Z* J) k" l" s. I/ t
& J# Y$ @4 U- U4 A' C' }$ M
    p(i) = s(i) / (height * width * 1.0);  + C" ]" {- ?6 R( K" Y

" W* d- y$ N' Wend  + B2 ]" X2 p  A
9 |$ N# b6 C. G* X( p( Q. M5 @
%计算累计直方图分布  ; Z- U& O+ _2 X
8 e6 d' e1 s  {5 }0 Q  i8 s
c = zeros(1,256);  
  |& n( R) ?: u# i0 A3 H
4 o) G) ?9 t7 Qc(1) = p(1);- ], S( H; L. l
4 [" |) Y9 _4 ?7 k/ a: D  ~& x/ w
for i = 2:256     I. C3 }9 V) y$ k: j
! g, Y7 ~7 Y" o* S2 F
        c(i) = c(i - 1) + p(i);  
/ {: z/ h9 h  c2 F. S& J
8 d3 D- O5 I  K. l: l( D( d+ X7 dend  
! B' N( h8 ~5 i
/ D3 N  }. t7 m& y1 P$ G" u%累计分布取整,将其数值归一化为1~256
& U9 T- G8 G$ k5 V, l4 g4 F+ R# M* R
c = uint8(255 .* c + 0.5);  & b% Z# H8 O+ h: l1 U3 V, Q

: U! @: I6 t7 O%对图像进行均衡化
, I, C0 ~$ n1 M
4 I* c( c" R: a+ p7 t0 P7 N( ^7 M% o6 k2 Hfor i = 1:height  
1 O* F" A! v* I
' T/ U9 k5 I& N6 l2 V1 m    for j = 1: width  
9 X) J( Z% J3 {- _$ J% m: R( }) e8 K
        Ig(i,j) = c(I(i,j)+1);  * s1 V2 x  ^0 M4 Q* S' @; S/ f" S
8 u8 W+ j! P( S7 n
    end  7 b! X- C8 J/ v9 y3 c& ?; t" \

6 f0 d* `( }! y. Q5 yend  
5 W$ R, g+ h$ ~$ }7 R$ w  z9 R# w2 X" s! A
%subplot(122)  8 ^3 [1 ]- q: c3 m. n+ h
  O$ T# H4 U1 ~9 v
%imshow(Ig)%显示均衡化后的图像
- {" n; P" x# _1 C8 g2 P* x5 Y. w
" \( c- v  U9 U" m( c5 \dis(:,:,2)=Ig;( h5 ]! Q7 `" e' a: F& V5 P) ?8 o4 u6 M

# l! r5 }! g4 ^7 E% M- J6 Q, Y" t9 J
0 P' H( x1 D$ s3 n4 D* K: t* q
%对B通道进行均衡化处理,均衡化可以写一个统一的函数,直接调用" P/ n$ w( k- R0 `
7 p* T% r# n* ^* R6 }. w& Q
I=t(:,:,3);; [7 v# T2 k1 E& L
( z+ g; f( ^  v& R! \9 Q' x& L2 |
[height,width] = size(I);  6 ]; n, z0 ^1 N7 @
; I8 g, e  L# x# j0 I" `, d
4 _% i  v* i, L* j
! `$ f* x' s4 f% J* l" c
%下面使用直方图均衡化进行处理
* Q9 S' ?( j" r# u) o8 H$ Q& a2 A) t. E9 V0 n( I
%进行像素灰度统计;  
/ B+ I; {! j& g8 [) @/ h" [
7 P6 B0 z8 i3 M  `9 [& ds = zeros(1,256);%统计各灰度数目,共256个灰度级  
( @8 |$ q: [  ]; _0 P4 ^/ Q0 X6 V4 N) Y6 X. d$ y6 [# Z
%绘制直方图
1 U( P: N5 _% U8 @8 a6 }- a5 M
9 o  }# Z& n3 H4 d6 i7 k; Sgp=zeros(1,256);
$ o( I% t& Z/ C' Z4 ~$ ?* X; x. @; I+ \( ?
for k=0:255
- ^" p/ _. Z. |  b1 `2 N/ w2 J( {. D' [) z  X4 M
    gp(k+1)=length(find(I==k))/(height*width);# G0 x7 g: K1 G. v! q- v4 D

( R* k5 y9 S& O+ U$ mend
! H  F3 n# {8 v- }9 t5 @: k8 l% u0 K0 q: I
for i = 1:height  
/ g; W% I: ?+ [: c+ ^& l0 ^- K# r, M# X- u3 \9 o3 U
    for j = 1: width  - e4 P8 p% m4 e" z9 F7 ?; ?% ~
* J/ h( o  j3 U! Y" u& B! ~7 U
        s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一  
' l% b, I5 d9 W" n6 e* W) T# N" s: L& U
    end  $ T; G3 ~) c7 G$ T
' B- \& T/ W4 x$ O2 C2 M; U  u
end  
: S/ y' v7 X9 P' E
1 R3 O  C! k: Z7 l%计算灰度分布密度  
3 i3 j3 p, T5 c) Z  r# c+ D4 N! ~, w  w) e' a0 _4 y4 J
p = zeros(1,256);  
* c& z$ C' [: ^2 |- q, N; l: r9 t  S2 ?) H0 f& z. H7 e
for i = 1:256  
5 b3 m7 c$ h/ C# I. Y
: Y+ }6 f0 a+ M5 `' @# U    p(i) = s(i) / (height * width * 1.0);  0 N7 F! w  z) k3 r* W# h2 c

% F4 z/ a# S9 s( ~- s2 Nend  & Y# l; V, s* v3 L, ^1 ^% p/ q

* t9 C$ V6 W. G! x8 v%计算累计直方图分布  
7 }0 U$ P8 ?! p9 V& P: {- S" h: i3 U# J2 |
c = zeros(1,256);  
( U! w$ m0 j' g% n: d4 M* u1 ~+ [8 G  x2 h7 T
c(1) = p(1);
! P  x3 A1 r5 r! X5 I' M1 |; v
6 B1 z9 \: u, f  M, f, bfor i = 2:256   % Q& u& ^  D1 Y1 \/ u
3 s1 T# J. H6 z0 A& J
        c(i) = c(i - 1) + p(i);  
3 @. A) ^8 p' Z9 p5 }! k6 N( q3 `( V* ~. d& |' y
end  / d( v2 P. H. b) E2 b- u# S3 s& s& @

: ~) c! f+ u" c: q) `%累计分布取整,将其数值归一化为1~256 ; c( l! b) v* }7 F8 y
2 D# [' B8 P+ s
c = uint8(255 .* c + 0.5);  : j3 [1 ~6 H  h

9 T' N5 J# u2 r- {2 v$ \%对图像进行均衡化' k) a2 q, Y' @& |0 o7 A4 \

; _' p' s6 N, e. [8 D1 H+ S+ hfor i = 1:height  
- |, D2 B" e  d3 ^* C) K( Y% c" P+ l+ z0 B6 \
    for j = 1: width  ! Q2 X0 |* a' n( R+ O& O
7 h, Z+ e# y$ O' w; e4 R
        Ib(i,j) = c(I(i,j)+1);  
, `! O. m! W# F  ^; p0 E4 N7 ~2 n; f' h0 u' W% T, ]4 F
    end  
9 ~: j7 {* p. K2 k/ b* |: m2 a) u# o( @
end  
. x$ T+ f" M8 p- y
! G! {3 {, L; \) t9 @4 mdis(:,:,3)=Ib; % l1 O# b4 a0 j. U( N3 T" O

& r  s; o  o" t5 y: j%subplot(122)  1 q$ ~: `# Q0 ~5 a/ d# D, ?, L

- M3 f4 l( J4 e8 Y# A8 r% Q%imshow(Ib)%显示均衡化后的图像
  |4 u' E6 z9 T; L; Z
+ w8 {" ]4 ^) C* g. g  v8 Zsubplot(122);' l7 a6 s, \4 W/ h! D* e: q

6 r/ A5 W) C/ y; f9 iimshow(dis),title('处理之后的图像')%显示均衡化后的图像
" x% F5 P* L: O; S% Y7 @0 c
1 Y- ^/ P( U: O- R+ f2 u# e: ~) s: m- P

( ~6 h0 z  J$ M2 Z4 h6 F: M8 m" e3 J
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-6-23 16:58 | 只看该作者
    用MATLAB仿真基于直方图均衡化的水下激光图像处理
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 14:41 , Processed in 0.156250 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表