function I1 = mMatchHistogram( I2, I1 ) zero_bin = zeros( 1, 2^8+10 ); [ row_total, col_total ] = size( I1 ); %image_size = row_total*col_total; I2_bin = zero_bin; I1_bin = zero_bin; for row = 1:row_total for col = 1:col_total bin_index = I2( row, col )+1; I2_bin( bin_index ) = I2_bin( bin_index ) + 1; bin_index = I1( row, col )+1; I1_bin( bin_index ) = I1_bin( bin_index ) + 1; end end H2 = cumsum( I2_bin ); H1 = cumsum( I1_bin ); for count = 1:10 mean(mean(I1)); mean(mean(I2)); for row = 1:row_total for col = 1:col_total I1xy = I1( row, col )+1; if H1( I1xy ) > H2( I1xy ) g = find( H2 >= H1( I1xy ) ); g = g(1); H1( I1xy:g-1 ) = H1( I1xy:g-1 ) - 1; I1( row, col ) = g; end if H1( I1xy ) < H2( I1xy ) g = find( H2 <= H1( I1xy ) ); g = g( length( g ) ); H1( g:I1xy-1 ) = H1( g:I1xy-1 ) + 1; I1( row, col ) = g; end end end end