function [Pix_out] = correlation1(Pix_in, threshold_g) % %CORRELATION1 Performs correlation-based color interpolation Kernel 1 % % Usage: [Pix_out] = correlation1(Pix_in, threshold_g) % % Pix_out = Interpolated image 3D array output % Valid range: 0 <= Pix_out(:,:,:) <= 255 (8 bits) % % Pix_in = Bayer CFA RGB image 3D array input % Valid range: 0 <= Pix_in(:,:,:) <= 255 (8 bits) % % threshold_g = Activation threshold for correlation-based % adjustment to bilinear-interpolated green pixels % on red and blue centers % The bilinear interpolation is the average of the % four green pixels % Valid range: 0 <= threshold_g <= 1275 (5 x 255) % % Assumptions: Pix_in has the following format - % % 1 2 3 4 . . . w d Color Plane % ------------------ --- ------------- % 1 | G R G R . . . R 1 R % 2 | B G B G . . . G 2 G % 3 | G R G R . . . R 3 B % 4 | B G B G . . . G % . | . . . . . . . R % . | . . . . . . . G % . | . . . . . . . R % h | B G B G B G B G % % Author: Gary Embler % Email: gary_embler@agilent.com % Date: 05/07/01 % Reference: "Correlation-Based Color Mosaic Interpolation Using a % Connectionist Approach", G. Embler % % Copyright (c) 2001 by Gary Embler % %====================================================================== % Initialization %---------------------------------------------------------------------- [h, w, d] = size(Pix_in); %====================================================================== % Pixels Pass-Through %---------------------------------------------------------------------- Pix_out = Pix_in; %====================================================================== % Common Arrays %---------------------------------------------------------------------- % Pixel Input Complements Pix_in_n(1:2:(h-1), 2:2:w, 1) = ... % R_n bitcmp(Pix_in(1:2:(h-1), 2:2:w, 1), 8); % R Pix_in_n(1:2:(h-1), 1:2:(w-1), 2) = ... % GR_n bitcmp(Pix_in(1:2:(h-1), 1:2:(w-1), 2), 8); % GR Pix_in_n(2:2:h, 2:2:w, 2) = ... % GB_n bitcmp(Pix_in(2:2:h, 2:2:w, 2), 8); % GB Pix_in_n(2:2:h, 1:2:(w-1), 3) = ... % B_n bitcmp(Pix_in(2:2:h, 1:2:(w-1), 3), 8); % B %====================================================================== % R, B-Center G-Interpolation - Kernel 1 %---------------------------------------------------------------------- % Kernel 1 R-Center G Sums Pix_sum(:,:,1,1) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,2) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,3) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,4) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,5) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,6) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,7) = Pix_in_n(4:2:h, 2:2:(w-2), 2)... % G3_n + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,8) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,9) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,10) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,11) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in_n(3:2:(h-1), 1:2:(w-3), 2)... % G2_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,12) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,13) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G1_n + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 Pix_sum(:,:,1,14) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in_n(3:2:(h-1), 3:2:(w-1), 2); % G0_n Pix_sum(:,:,1,15) = Pix_in( 4:2:h, 2:2:(w-2), 2)... % G3 + Pix_in( 3:2:(h-1), 1:2:(w-3), 2)... % G2 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G1 + Pix_in( 3:2:(h-1), 3:2:(w-1), 2); % G0 % Kernel 1 B-Center G Sums Pix_sum(:,:,2,1) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,2) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,3) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,4) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,5) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,6) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,7) = Pix_in_n(3:2:(h-1), 3:2:(w-1), 2)... % G3_n + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,8) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,9) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,10) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,11) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in_n(2:2:(h-2), 2:2:(w-2), 2)... % G2_n + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,12) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,13) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in_n(1:2:(h-3), 3:2:(w-1), 2)... % G1_n + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 Pix_sum(:,:,2,14) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in_n(2:2:(h-2), 4:2:w, 2); % G0_n Pix_sum(:,:,2,15) = Pix_in( 3:2:(h-1), 3:2:(w-1), 2)... % G3 + Pix_in( 2:2:(h-2), 2:2:(w-2), 2)... % G2 + Pix_in( 1:2:(h-3), 3:2:(w-1), 2)... % G1 + Pix_in( 2:2:(h-2), 4:2:w, 2); % G0 % Kernel 1 R-Center Negative Adjustment Sums Adj_sum_0_75_n(:,:,1,1) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,1); Adj_sum_0_75_n(:,:,1,2) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2); Adj_sum_0_75_n(:,:,1,3) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,4); Adj_sum_0_75_n(:,:,1,4) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,8); Adj_sum_0_5_n(:,:,1,1) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,3); Adj_sum_0_5_n(:,:,1,2) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,5); Adj_sum_0_5_n(:,:,1,3) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,6); Adj_sum_0_5_n(:,:,1,4) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,9); Adj_sum_0_5_n(:,:,1,5) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,10); Adj_sum_0_5_n(:,:,1,6) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,12); Adj_sum_0_25_n(:,:,1,1) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,7); Adj_sum_0_25_n(:,:,1,2) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,11); Adj_sum_0_25_n(:,:,1,3) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,13); Adj_sum_0_25_n(:,:,1,4) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,14); % Kernel 1 R-Center Positive Adjustment Sums Adj_sum_0_25(:,:,1,1) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,1); Adj_sum_0_25(:,:,1,2) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2); Adj_sum_0_25(:,:,1,3) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,4); Adj_sum_0_25(:,:,1,4) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,8); Adj_sum_0_5(:,:,1,1) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,3); Adj_sum_0_5(:,:,1,2) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,5); Adj_sum_0_5(:,:,1,3) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,6); Adj_sum_0_5(:,:,1,4) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,9); Adj_sum_0_5(:,:,1,5) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,10); Adj_sum_0_5(:,:,1,6) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,12); Adj_sum_0_75(:,:,1,1) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,7); Adj_sum_0_75(:,:,1,2) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,11); Adj_sum_0_75(:,:,1,3) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,13); Adj_sum_0_75(:,:,1,4) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,14); % Kernel 1 B-Center Negative Adjustment Sums Adj_sum_0_75_n(:,:,2,1) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,1); Adj_sum_0_75_n(:,:,2,2) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2); Adj_sum_0_75_n(:,:,2,3) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,4); Adj_sum_0_75_n(:,:,2,4) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,8); Adj_sum_0_5_n(:,:,2,1) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,3); Adj_sum_0_5_n(:,:,2,2) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,5); Adj_sum_0_5_n(:,:,2,3) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,6); Adj_sum_0_5_n(:,:,2,4) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,9); Adj_sum_0_5_n(:,:,2,5) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,10); Adj_sum_0_5_n(:,:,2,6) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,12); Adj_sum_0_25_n(:,:,2,1) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,7); Adj_sum_0_25_n(:,:,2,2) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,11); Adj_sum_0_25_n(:,:,2,3) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,13); Adj_sum_0_25_n(:,:,2,4) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,14); % Kernel 1 B-Center Positive Adjustment Sums Adj_sum_0_25(:,:,2,1) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,1); Adj_sum_0_25(:,:,2,2) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2); Adj_sum_0_25(:,:,2,3) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,4); Adj_sum_0_25(:,:,2,4) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,8); Adj_sum_0_5(:,:,2,1) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,3); Adj_sum_0_5(:,:,2,2) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,5); Adj_sum_0_5(:,:,2,3) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,6); Adj_sum_0_5(:,:,2,4) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,9); Adj_sum_0_5(:,:,2,5) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,10); Adj_sum_0_5(:,:,2,6) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,12); Adj_sum_0_75(:,:,2,1) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,7); Adj_sum_0_75(:,:,2,2) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,11); Adj_sum_0_75(:,:,2,3) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,13); Adj_sum_0_75(:,:,2,4) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,14); % Kernel 1 Negative Adjustment Adj_max_0_75_n(:,:,:) = max(max(Adj_sum_0_75_n(:,:,:,1),... Adj_sum_0_75_n(:,:,:,2)),... max(Adj_sum_0_75_n(:,:,:,3),... Adj_sum_0_75_n(:,:,:,4))); Adj_max_0_5_n(:,:,:) = max(max(max(Adj_sum_0_5_n(:,:,:,1),... Adj_sum_0_5_n(:,:,:,2)),... max(Adj_sum_0_5_n(:,:,:,3),... Adj_sum_0_5_n(:,:,:,4))),... max(Adj_sum_0_5_n(:,:,:,5),... Adj_sum_0_5_n(:,:,:,6))); Adj_max_0_25_n(:,:,:) = max(max(Adj_sum_0_25_n(:,:,:,1),... Adj_sum_0_25_n(:,:,:,2)),... max(Adj_sum_0_25_n(:,:,:,3),... Adj_sum_0_25_n(:,:,:,4))); Adj_thrs_0_75_n(:,:,:) = clip((Adj_max_0_75_n(:,:,:)... - threshold_g), 0, 1275); Adj_thrs_0_5_n(:,:,:) = clip((Adj_max_0_5_n(:,:,:)... - threshold_g), 0, 1275); Adj_thrs_0_25_n(:,:,:) = clip((Adj_max_0_25_n(:,:,:)... - threshold_g), 0, 1275); Adj_n(:,:,:) = max(max( bitshift(Adj_thrs_0_25_n(:,:,:), -2),... bitshift(Adj_thrs_0_5_n( :,:,:), -1)),... ( bitshift(Adj_thrs_0_75_n(:,:,:), -2)... + bitshift(Adj_thrs_0_75_n(:,:,:), -1)));... % Kernel 1 Positive Adjustment Adj_max_0_25(:,:,:) = max(max(Adj_sum_0_25(:,:,:,1),... Adj_sum_0_25(:,:,:,2)),... max(Adj_sum_0_25(:,:,:,3),... Adj_sum_0_25(:,:,:,4))); Adj_max_0_5(:,:,:) = max(max(max(Adj_sum_0_5(:,:,:,1),... Adj_sum_0_5(:,:,:,2)),... max(Adj_sum_0_5(:,:,:,3),... Adj_sum_0_5(:,:,:,4))),... max(Adj_sum_0_5(:,:,:,5),... Adj_sum_0_5(:,:,:,6))); Adj_max_0_75(:,:,:) = max(max(Adj_sum_0_75(:,:,:,1),... Adj_sum_0_75(:,:,:,2)),... max(Adj_sum_0_75(:,:,:,3),... Adj_sum_0_75(:,:,:,4))); Adj_thrs_0_25(:,:,:) = clip((Adj_max_0_25(:,:,:)... - threshold_g), 0, 1275); Adj_thrs_0_5(:,:,:) = clip((Adj_max_0_5(:,:,:)... - threshold_g), 0, 1275); Adj_thrs_0_75(:,:,:) = clip((Adj_max_0_75(:,:,:)... - threshold_g), 0, 1275); Adj(:,:,:) = max(max( bitshift(Adj_thrs_0_25(:,:,:), -2),... bitshift(Adj_thrs_0_5( :,:,:), -1)),... ( bitshift(Adj_thrs_0_75(:,:,:), -2)... + bitshift(Adj_thrs_0_75(:,:,:), -1)));... % Kernel 1 Average Avg(:,:,:) = bitshift(Pix_sum(:,:,:,15), -2); % Kernel 1 R-Center G-Output Adj_sel(:,:,1) = Avg(:,:,1) < Pix_in(3:2:(h-1), 2:2:(w-2), 1); % R Pix_out(3:2:(h-1), 2:2:(w-2), 2) =... (~Adj_sel(:,:,1) .* clip((Avg(:,:,1) - Adj_n(:,:,1)),... Pix_in(3:2:(h-1), 2:2:(w-2), 1),... % R Avg(:,:,1)))... + ( Adj_sel(:,:,1) .* clip((Avg(:,:,1) + Adj( :,:,1)),... Avg(:,:,1),... Pix_in(3:2:(h-1), 2:2:(w-2), 1))); % R % Kernel 1 B-Center G-Output Adj_sel(:,:,2) = Avg(:,:,2) < Pix_in(2:2:(h-2), 3:2:(w-1), 3); % B Pix_out(2:2:(h-2), 3:2:(w-1), 2) =... (~Adj_sel(:,:,2) .* clip((Avg(:,:,2) - Adj_n(:,:,2)),... Pix_in(2:2:(h-2), 3:2:(w-1), 3),... % B Avg(:,:,2)))... + ( Adj_sel(:,:,2) .* clip((Avg(:,:,2) + Adj( :,:,2)),... Avg(:,:,2),... Pix_in(2:2:(h-2), 3:2:(w-1), 3))); % B %======================================================================