function [Pix_out] = correlation2_1(Pix_in, threshold_br) % %CORRELATION2_1 Performs correlation-based color interpolation % Kernel 2.1 % % Usage: [Pix_out] = correlation2_1(Pix_in, threshold_br) % % 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_br = Activation threshold for correlation-based % adjustment to directed-linear-interpolated blue % and red pixels on red and blue centers % The directed-linear interpolation is the average % of the two middle red or blue pixels % Valid range: 0 <= threshold_br <= 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/10/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 B, R-Interpolator - Kernel 2 %---------------------------------------------------------------------- % Kernel 2 R-Center B Sum Pix_sum(:,:,1,1,1) = Pix_in( 4:2:h, 3:2:(w-1), 3)... % B3 + Pix_in( 4:2:h, 1:2:(w-3), 3)... % B2 + Pix_in( 2:2:(h-2), 1:2:(w-3), 3)... % B1 + Pix_in( 2:2:(h-2), 3:2:(w-1), 3); % B0 % Kernel 2 R-Center G Sums Pix_sum(:,:,1,2,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,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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,2,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 % Kernel 2 B-Center R Sum Pix_sum(:,:,2,1,1) = Pix_in( 3:2:(h-1), 4:2:w, 1)... % R3 + Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R2 + Pix_in( 1:2:(h-3), 2:2:(w-2), 1)... % R1 + Pix_in( 1:2:(h-3), 4:2:w, 1); % R0 % Kernel 2 B-Center G Sums Pix_sum(:,:,2,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,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,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,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,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,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,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,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,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,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,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,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,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,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 % Kernel 2 R-Center Negative Adjustment Sums Adj_sum_n(:,:,1,1) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,1); Adj_sum_n(:,:,1,2) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,2); Adj_sum_n(:,:,1,3) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,3); Adj_sum_n(:,:,1,4) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,4); Adj_sum_n(:,:,1,5) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,5); Adj_sum_n(:,:,1,6) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,6); Adj_sum_n(:,:,1,7) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,7); Adj_sum_n(:,:,1,8) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,8); Adj_sum_n(:,:,1,9) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,9); Adj_sum_n(:,:,1,10) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,10); Adj_sum_n(:,:,1,11) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,11); Adj_sum_n(:,:,1,12) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,12); Adj_sum_n(:,:,1,13) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,13); Adj_sum_n(:,:,1,14) = Pix_in_n(3:2:(h-1), 2:2:(w-2), 1)... % R_n + Pix_sum(:,:,1,2,14); % Kernel 2 R-Center Positive Adjustment Sums Adj_sum(:,:,1,1) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,1); Adj_sum(:,:,1,2) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,2); Adj_sum(:,:,1,3) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,3); Adj_sum(:,:,1,4) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,4); Adj_sum(:,:,1,5) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,5); Adj_sum(:,:,1,6) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,6); Adj_sum(:,:,1,7) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,7); Adj_sum(:,:,1,8) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,8); Adj_sum(:,:,1,9) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,9); Adj_sum(:,:,1,10) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,10); Adj_sum(:,:,1,11) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,11); Adj_sum(:,:,1,12) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,12); Adj_sum(:,:,1,13) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,13); Adj_sum(:,:,1,14) = Pix_in( 3:2:(h-1), 2:2:(w-2), 1)... % R + Pix_sum(:,:,1,2,14); % Kernel 2 B-Center Negative Adjustment Sums Adj_sum_n(:,:,2,1) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,1); Adj_sum_n(:,:,2,2) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,2); Adj_sum_n(:,:,2,3) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,3); Adj_sum_n(:,:,2,4) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,4); Adj_sum_n(:,:,2,5) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,5); Adj_sum_n(:,:,2,6) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,6); Adj_sum_n(:,:,2,7) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,7); Adj_sum_n(:,:,2,8) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,8); Adj_sum_n(:,:,2,9) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,9); Adj_sum_n(:,:,2,10) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,10); Adj_sum_n(:,:,2,11) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,11); Adj_sum_n(:,:,2,12) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,12); Adj_sum_n(:,:,2,13) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,13); Adj_sum_n(:,:,2,14) = Pix_in_n(2:2:(h-2), 3:2:(w-1), 3)... % B_n + Pix_sum(:,:,2,2,14); % Kernel 2 B-Center Positive Adjustment Sums Adj_sum(:,:,2,1) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,1); Adj_sum(:,:,2,2) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,2); Adj_sum(:,:,2,3) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,3); Adj_sum(:,:,2,4) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,4); Adj_sum(:,:,2,5) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,5); Adj_sum(:,:,2,6) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,6); Adj_sum(:,:,2,7) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,7); Adj_sum(:,:,2,8) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,8); Adj_sum(:,:,2,9) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,9); Adj_sum(:,:,2,10) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,10); Adj_sum(:,:,2,11) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,11); Adj_sum(:,:,2,12) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,12); Adj_sum(:,:,2,13) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,13); Adj_sum(:,:,2,14) = Pix_in( 2:2:(h-2), 3:2:(w-1), 3)... % B + Pix_sum(:,:,2,2,14); % Kernel 2 Negative Adjustment Adj_n(:,:,:) =... bitshift(clip((max(Adj_sum_n, [], 4) - threshold_br), 0, 1275), -1); % Kernel 2 Positive Adjustment Adj(:,:,:) =... bitshift(clip((max(Adj_sum, [], 4) - threshold_br), 0, 1275), -1); % Kernel 2 Averages Avg(:,:,1) = bitshift((Pix_sum(:,:,1,1,1)... - min(min(Pix_in( 4:2:h, 3:2:(w-1), 3),... % B3 Pix_in( 4:2:h, 1:2:(w-3), 3)),... % B2 min(Pix_in( 2:2:(h-2), 1:2:(w-3), 3),... % B1 Pix_in( 2:2:(h-2), 3:2:(w-1), 3)))... % B0 - max(max(Pix_in( 4:2:h, 3:2:(w-1), 3),... % B3 Pix_in( 4:2:h, 1:2:(w-3), 3)),... % B2 max(Pix_in( 2:2:(h-2), 1:2:(w-3), 3),... % B1 Pix_in( 2:2:(h-2), 3:2:(w-1), 3)))), -1); % B0 Avg(:,:,2) = bitshift((Pix_sum(:,:,2,1,1)... - min(min(Pix_in( 3:2:(h-1), 4:2:w, 1),... % R3 Pix_in( 3:2:(h-1), 2:2:(w-2), 1)),... % R2 min(Pix_in( 1:2:(h-3), 2:2:(w-2), 1),... % R1 Pix_in( 1:2:(h-3), 4:2:w, 1)))... % R0 - max(max(Pix_in( 3:2:(h-1), 4:2:w, 1),... % R3 Pix_in( 3:2:(h-1), 2:2:(w-2), 1)),... % R2 max(Pix_in( 1:2:(h-3), 2:2:(w-2), 1),... % R1 Pix_in( 1:2:(h-3), 4:2:w, 1)))), -1); % R0 % Kernel 2 R-Center B-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), 3) =... (~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 2 B-Center R-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), 1) =... (~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 %======================================================================