UnCombining изображения - PullRequest
       7

UnCombining изображения

0 голосов
/ 15 марта 2011

Цель состоит в том, чтобы объединить 3 изображения одинакового размера (512 * 512 * 3) в результирующее изображение E с размером r = 1536 с = 512 d = 3

img1=imread('pic1.jpg');
img2=imread('pic2.jpg');
img3=imread('pic3.jpg');

figure;
E = [img1; img2; img3];
imshow(E);
figure;
subplot(1,3,1);
E1 = E(:,img1,img2);
imshow(E1);
E2=E(img1,:,img3);
sublot(1,3,2);
imshow(E2);
E3=E(img1,img2,:);
sublot(1,3,3);
imshow(E3);
  1. Это приводит к ошибке

    ??? Индексы нижнего индекса должны быть либо действительными положительными целыми числами, либо логическими.

    Ошибка в ==> комбинированный_имг в 11 E1 = E (:, img1, img2);

Пожалуйста, помогите решить эту проблему.

1 Ответ

0 голосов
/ 15 марта 2011

Ошибка - именно то, что говорится: индексы должны быть целыми или логическими. Когда вы пытаетесь индексировать, используя img1, скорее всего, он содержит нецелые числа, что выдает ошибку. Вот что вы должны сделать:

E=[img1; img2; img3];%#combine the images
E1=E(1:512,:,:);
E2=E(513:1024,:,:);
E3=E(1025:end,:,:);

Вы также можете сделать это более элегантно, как

imgDim=size(img1,1);%# since they're all equal dimensions, we'll need just one.
imgCell=mat2cell(E,[imgDim,imgDim,imgDim],imgDim,3);%# create a cell
[E1, E2, E3]=deal(imgCell{:});%#distribute contents of cell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...