2015-06-02 3 views
0

У меня 2000 изображений, размер каждого из которых - Xi = 320 * 512 double (i = 1: 1: 2000). Я хочу рассматривать каждое изображение как один блок, поэтому есть 2000 блоков, а затем помещают их в одно большое изображение. Для каждого блока есть метка, соответствующая ему, метка находится в диапазоне от 1 до 10. Мой вопрос заключается в том, как поместить изображения 2000 в большие изображения блоков с меткой для каждого блока, как описано выше?Как создать изображение блока?

У меня есть 2000 изображений. Может ли кто-нибудь сказать мне, как помещать такие изображения в блоки?

+0

Попробуйте использовать ['reshape'] (http://www.mathworks.com/help/matlab/ref/reshape.html). –

+0

@JeffIrwin, пожалуйста, дайте мне пример – Angelababy

+0

Я немного не понимаю, как совместить метки от 1 до 10 с 2000 блоками, что вы хотите сделать здесь? – paisanco

ответ

0

Мой комментарий был неверным, reshape не решит вашу проблему. Тем не менее, я использовал reshape, чтобы создать пример массива изображений.

% Replace these with 320, 512, and 2000. 
nx = 2; 
ny = 3; 
nz = 4; 

% nz images, each of size nx by ny 
images = reshape(1: nx * ny * nz, nx, ny, nz) 

% Put each image into a larger image composed of n1 * n2 blocks 
n1 = 2; 
n2 = 2; 
image = zeros(n1 * nx, n2 * ny); 

% Note, nz == n1 * n2 must be true 

iz = 0; 
for i1 = 1: n1 
    for i2 = 1: n2 
     iz = iz + 1; 
     image((i1 - 1) * nx + 1: i1 * nx, (i2 - 1) * ny + 1: i2 * ny) ... 
      = images(:, :, iz); 
    end 
end 

image 

Это создает изображение большого блока правильно. Возможно, вы захотите изменить внутренний/внешний порядок циклов, чтобы сделать упорядочение по столбцу, а не упорядочивать строки.

Как и paisanco, я не уверен, что вы хотите делать с ярлыками.

+0

Спасибо вам! – Angelababy