-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsplit_into_baches.m
54 lines (42 loc) · 1.29 KB
/
split_into_baches.m
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function batches = split_into_baches(img, nx, ny)
%SPLIT_INTO_BATCHES 画像データの分割をする(画像データimgを(ny,nx)等分に分割する)
%
% batches = split_into_baches(img, nx, ny)
%
% Parameters
% ----------
% i㎎ : vector
% 画像データ(グレースケールか2値)
% nx,ny : numeric(imgを縦にny分割、横にnx分割する)
%
%
% Returns
% -------
% batches : vector(numeric)
% 分割後の画像配列
% 画像サイズ
x_size = uint16(size(img,2));
y_size = uint16(size(img,1));
% 分割後の1つ分のサイズ
each_x = uint16(x_size / nx) - 1;
each_y = uint16(y_size / ny) - 1;
% 画像サイズ再定義(半端な部分は切り捨てる)
x_size = each_x * nx;
y_size = each_y * ny;
img = imresize(img, [y_size x_size]);
% バッチの領域を確保(3次元)
batches = zeros(each_y,each_x,(nx * ny));
% 分割した画像をひたすら格納
i = 1;
for y=1:each_y:y_size
for x=1:each_x:x_size
x_end = (x + each_x - 1);
y_end = (y + each_y - 1);
c_img = img(y:y_end, x:x_end);
% imshow(c_img);
% pause(1)
batches(:,:,i) = c_img;
i = i + 1;
end
end
end