MATLAB Example

% To display the images of homework-2

load hw2p1_data.mat
data = reshape(x,16,8,8);
for i=1:16
subplot(4,4,i), imshow(reshape(data(i,:,:),8,8)')
end

% statistical parameters for each image

m = mean(x,2) % average
v = var(x,0,2) % variance
sd = sqrt(v) % standard deviation
med = median(x,2) % median value
mod = mode(x,2) % mode value : most frequent value
mx = max(x,[],2)
mn = min(x,[],2)
middle = 0.5*(mx - mn)

% statistical parameters along a specific direction

hsum = sum(data,3)
hsum_var = var(hsum,0,2)

vsum = reshape(sum(data,2),size(data,1),size(data,3))
vsum_var = var(vsum,0,2)

% To find # of pixels which are bigger than a given value

for i=1:16,
c(i,:) = (x(i,:) > m(i)),
end

d = sum(c,2)

% Extracting diagonal elements only and examine

for i=1:16
for j=1:8
diag(i,j) = data(i,j,j)
end
end

for i=1:16,
cc(i,:) = (diag(i,:) > m(i))
end

nn = sum(cc,2)

% or

for i=1:16
for j=1:8
idiag(i,j) = data(i,j,9-j)
end
end

for i=1:16,
cc(i,:) = (idiag(i,:) > m(i))
end

inn = sum(icc,2)

% 분산플롯을 생성하기 위해서는 'scatter" 명령을 사용하면 된다.

a1 = [ 1 2 3 1 2 3 ], b1 = [ 1 2 3 3 2 1 ]
a2 = [ 7 8 9 7 8 9 ], b2 = [ 6 7 9 8 7 6 ]
scatter(a1,b1,60,[1 0 0 ],'x')  % 좌표 (a1,b1) 에 plot red 'x' with size 60
hold on
scatter(a2,b2,80,[0 0 1],'o')  % 좌표 (a2,b2) 에 plot blue 'o' with size 80