一旦添加,如何使用matlab取回原始图像?

时间:2014-02-04 21:51:35

标签: image image-processing matlab

      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),我无法弄清楚如何将其取回。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

让我们不要担心图像。假设我有两个实数整数xy。我将它们添加到z = x+y。现在,如果我告诉某人整数z是否有任何方式让他或她回来x和/或y

答案 1 :(得分:0)

您可以通过拥有另一个来从总和中检索其中一个数字。但是您面临的问题是,由于MATLAB默认使用uint8类型,因此您的图像矩阵不能超过255。以下是图像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的函数imshow并不像你想要的那样工作。因为他们认为你的