2014-02-04 2 views
-1
 A = imread('ab.jpg'); 
     A = imresize(A,[255 255]); subplot(2,2,1), imshow(A); 
     B = imread('cd.jpg'); 
     B = imresize(B,[255 255]);subplot(2,2,2), imshow(B); 
     C = imadd(A,B);subplot(2,2,3),imshow(C); 

Это программа, которую я использовал для добавления двух изображений, и она отлично работает. Теперь я хочу вернуть оба изображения. Я не могу понять, как вернуть его, не обращая внимания на одно из изображений (т.е. вычитая изображение A из суммы, чтобы получить изображение B). Кто-нибудь может помочь?после добавления, как вернуть исходные изображения с помощью Matlab?

+0

Если кто-то добавляет два номера и дает вам только сумму, сможете ли вы восстановить каждый номер? –

+1

@ LuisMendo: У нас два ума! ;-) – horchler

+0

скажите мне, если вы можете восстановить хотя бы одно изображение :) –

ответ

2

Давайте не будем беспокоиться о изображениях. Скажем, у меня есть два действительных целых числа: x и y. Я добавляю их, чтобы получить z = x+y. Теперь, если я скажу кому-то целое число z, есть ли у него возможность вернуться x и/или y?

0

Потенциально вы можете извлечь одно из чисел из суммирования, используя другое. Но проблема, с которой вы сталкиваетесь, заключается в том, что ваши матрицы изображений не могут превышать значение 255, поскольку по умолчанию MATLAB использует тип uint8. Вот пример для двух соответствующих пикселей в изображении A и B:

% A(1,1) == 130 is ture 
% B(1,1) == 180 is ture 
C(1,1) = A(1,1) + B(1,1); %C(1,1) == 310 is false! c(1,1) == 255 is true 
expectedB = C(1,1) - A(1,1); % expectedB == 180 is false! expectedB == 125 is true 

Вы можете бросить тип ваших матриц для int16. Принимая во внимание, что при выполнении функций MATLAB sich как imshow не работают так, как вы хотите. Потому что они предполагают, что ваш

Смежные вопросы