clear all; % Setup data left_image_list = mGetLeftImageFileList; right_image_list = mGetRightImageFileList; image_pair_total = size( left_image_list, 1 ); Hu0_total = 0; image_size_total = 0; for image_count = 1:image_pair_total left_image_name = deblank( left_image_list( image_count,: ) ) right_image_name = deblank( right_image_list( image_count,: ) ) left_image = pgmRead( sprintf( '../images/%s', left_image_name ) ); right_image = pgmRead( sprintf( '../images/%s', right_image_name ) ); diff_image = right_image - left_image; diff_max = max( max( abs( diff_image ) ) ); diff_offset = -diff_max - 1; [ row_total, col_total ] = size( left_image ); image_size = row_total*col_total; bin = zeros( 2^8, 2*diff_max + 1 ); for row = 1:row_total for col = 1:col_total bin_row_index = left_image( row, col )+1; bin_col_index = diff_image( row, col )-diff_offset; % zero is not a valid index -> add 1 bin( bin_row_index, bin_col_index ) = bin( bin_row_index, bin_col_index ) + 1; end end % Normalize to find pdf PDF = bin / sum( sum( bin ) ); if image_count == 1 % display joint histogram for first image mPlotJointPDF( [ left_image_name ', ' right_image_name ], ... 'Left image pixel', [ 0:255 ], ... 'Difference', [ -diff_max:diff_max ], ... 'MPD', PDF ); p2=PDF; end % x*log(x) = log(x^x) PlogP = log( PDF.^PDF)/log(2); Hu0 = -sum( sum( PlogP ) ) Normalized_Hu0 = Hu0/2 Hu0_total = Hu0_total + Hu0; image_size_total = image_size_total + image_size; end % Overall statistics: fprintf( 2, 'Combined images:\n' ) % Normalize to find pdf Average_Hu0 = Hu0_total/size( left_image_list, 1 ) Normalized_Average_Hu0 = Average_Hu0/2