summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/toolbox/toolbox_basic/affine/carve_it.m
blob: 1a44f89dc1dc91ac4c7387d24795f4dbcf8b3683 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function img = carve_it(I,center,window_size_h)

[size_y,size_x]= size(I);
min_x = round(center(1)-window_size_h(1));
max_x = round(center(1)+window_size_h(1));
min_y = round(center(2)-window_size_h(2));
max_y = round(center(2)+window_size_h(2));
window_size = window_size_h*2 +1;

if (min_x <1)|(max_x > size_x)|(min_y<1)|(max_y>size_y),
  disp('window too big');
  center
  window_size_h
  img = zeros(window_size(2),window_size(1));
  n_min_x = max(1,round(min_x));
  n_min_y = max(1,round(min_y));
  n_max_x = min(size_x,round(max_x));
  n_max_y = min(size_y,round(max_y));
  img(1+(n_min_y-min_y):window_size(2)-(max_y-n_max_y),1+(n_min_x-min_x):window_size(1)-(max_x-n_max_x))=I(n_min_y:n_max_y,n_min_x:n_max_x);
else
  img = I(center(2)-window_size_h(2):center(2)+window_size_h(2),...
        center(1)-window_size_h(1):center(1)+window_size_h(1));
end