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)的情况下,无法弄清楚如何将其恢复。任何人都可以帮忙吗?
让我们不要担心图像。说我有两个真正的整数x
和y
。我添加它们以获取z = x+y
。现在,如果我告诉某人整数z
有什么办法让他或她恢复x
和/或y
?
有可能通过拥有另一个来检索总和之一。但是您面临的问题是,您的图像矩阵不能超过值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
,但您无法按照您的要求工作。因为他们假设您的