m |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | =Code:Discrete_Time_Interpolation= | ||
+ | *<span style="color:red"> copyright (c) Dhruv Lamba. </span> | ||
+ | <pre> | ||
− | = | + | close all; |
+ | clear all; | ||
+ | |||
+ | clc; | ||
+ | t = cputime; | ||
+ | |||
+ | img = imread('C:\Users\Dhruv\Pictures\chicago\DSC07983.JPG'); | ||
+ | |||
+ | |||
+ | % imshow(a); | ||
+ | % img_double = double(img); | ||
+ | % clear img; | ||
+ | |||
+ | |||
+ | % r = img(:,:,1); | ||
+ | g = img(:,:,2); | ||
+ | % b = img(:,:,3); | ||
+ | clear img; | ||
+ | figure; | ||
+ | |||
+ | imshow(g); | ||
+ | |||
+ | |||
+ | % % % % % % % % % % DOWNSAMPLER % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | i = 0; | ||
+ | j = 0; | ||
+ | m = 1; | ||
+ | n = 1; | ||
+ | |||
+ | D = 3; %%DOWNSAMPLING FACTOR | ||
+ | |||
+ | [x,y]=size(g); | ||
+ | x=x-mod(x,D); | ||
+ | y=y-mod(y,D); | ||
+ | |||
+ | while i < x; | ||
+ | n=1; | ||
+ | j=0; | ||
+ | while j < y; | ||
+ | g_decimated(m,n) = g(i+D,j+D); %#ok<AGROW> | ||
+ | j=j+D; | ||
+ | n=n+1; | ||
+ | end | ||
+ | i=i+D; | ||
+ | m=m+1; | ||
+ | end | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | figure; | ||
+ | |||
+ | |||
+ | imshow(g_decimated); | ||
+ | |||
+ | |||
+ | % % % % % % % % % % UPSAMPLER % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % | ||
+ | |||
+ | [X_D,Y_D] = size(g_decimated); | ||
+ | |||
+ | |||
+ | |||
+ | i=1; | ||
+ | |||
+ | g_up = zeros(1,Y_D + y-D); | ||
+ | while i < X_D | ||
+ | row = g_decimated(i,:); | ||
+ | new_row = zero_fill(row,D); | ||
+ | g_up = [g_up;new_row]; | ||
+ | temp = zeros(D,length(new_row)); | ||
+ | g_up = [g_up;temp]; | ||
+ | i=i+1; | ||
+ | end | ||
+ | figure; | ||
+ | imshow(g_up); | ||
+ | lpf = firpm(500,[0 1e-75/D 2e-75/D .5]*2,[1 1 0 0]); | ||
− | + | g_final = filter2(lpf,g_up); | |
+ | g_final = D*g_final; | ||
+ | figure; | ||
+ | imshow(g_final); | ||
+ | |||
+ | |||
+ | disp(cputime - t); | ||
+ | |||
+ | </pre> | ||
[[ Discrete Time Interpolation:Waving the math wand|Back to Discrete Time Interpolation:Waving the math wand]] | [[ Discrete Time Interpolation:Waving the math wand|Back to Discrete Time Interpolation:Waving the math wand]] |
Latest revision as of 23:02, 1 October 2009
Code:Discrete_Time_Interpolation
- copyright (c) Dhruv Lamba.
close all; clear all; clc; t = cputime; img = imread('C:\Users\Dhruv\Pictures\chicago\DSC07983.JPG'); % imshow(a); % img_double = double(img); % clear img; % r = img(:,:,1); g = img(:,:,2); % b = img(:,:,3); clear img; figure; imshow(g); % % % % % % % % % % DOWNSAMPLER % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % i = 0; j = 0; m = 1; n = 1; D = 3; %%DOWNSAMPLING FACTOR [x,y]=size(g); x=x-mod(x,D); y=y-mod(y,D); while i < x; n=1; j=0; while j < y; g_decimated(m,n) = g(i+D,j+D); %#ok<AGROW> j=j+D; n=n+1; end i=i+D; m=m+1; end % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % figure; imshow(g_decimated); % % % % % % % % % % UPSAMPLER % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % [X_D,Y_D] = size(g_decimated); i=1; g_up = zeros(1,Y_D + y-D); while i < X_D row = g_decimated(i,:); new_row = zero_fill(row,D); g_up = [g_up;new_row]; temp = zeros(D,length(new_row)); g_up = [g_up;temp]; i=i+1; end figure; imshow(g_up); lpf = firpm(500,[0 1e-75/D 2e-75/D .5]*2,[1 1 0 0]); g_final = filter2(lpf,g_up); g_final = D*g_final; figure; imshow(g_final); disp(cputime - t);