Как растянуть два изображения из смешанного изображения - PullRequest
1 голос
/ 14 июня 2010

Я смешал / слил 2 изображения img1 и img2 с этим кодом, который прекрасно работает. Что я хочу знать, так это как получить исходные два изображения img1 и img2.Код для смешивания такой же, как при

img1=imread('C:\MATLAB7\Picture5.jpg');
img2=imread('C:\MATLAB7\Picture6.jpg');
for i=1:size(img1,1)
  for j=1:size(img1,2)
    for k=1:size(img1,3)
      output(i,j,k)=(img1(i,j,k)+img2(i,j,k))/2;
    end
   end
end
imshow(output,[0 255]);

Ответы [ 2 ]

4 голосов
/ 14 июня 2010

Вы можете восстановить 2-е изображение, если у вас было одно исходное изображение плюс смешанное изображение.

Если у вас есть только смешанное изображение, существует почти бесконечное число img1 и img2, которое может иметьбыли объединены для создания двух изображений, поэтому вы не сможете их восстановить.

Для будущего программирования в Matlab обратите внимание, что в Matlab вам не нужны написанные вами циклы, это эквивалентно коду, который выдал:

img1=imread('C:\MATLAB7\Picture5.jpg');
img2=imread('C:\MATLAB7\Picture6.jpg');
output = (img1 + img2) ./ 2;
imshow(output,[0 255]);
1 голос
/ 14 июня 2010

Если вы смешаете изображения следующим образом:

img1=imread('C:\MATLAB7\Picture5.jpg');
img2=imread('C:\MATLAB7\Picture6.jpg');
blendedImg = (img1/2 + img2/2); % divide images before adding to avoid overflow

Вы можете получить обратно img1 из смешанного изображения (возможно, с некоторыми ошибками округления), если у вас есть img2

img1recovered = 2*(blendedImg - img2/2);

figure,subplot(1,2,1)
imshow(img1,[0 255])
subplot(1,2,2)
imshow(img1recovered,[0 255])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...