Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在MATLAB中添加两幅图像的差分_Image_Matlab_Image Processing - Fatal编程技术网

Image 在MATLAB中添加两幅图像的差分

Image 在MATLAB中添加两幅图像的差分,image,matlab,image-processing,Image,Matlab,Image Processing,我在做图像处理。我想添加两幅图像的像素差 假设我有两幅图像A和B,我选取两幅图像的第一个像素并存储差值。我想将此差值添加到下一个像素差值。我尝试使用此代码,但它不起作用。我怎么做 A = imread('sub2.jpg'); B = imread('sub1.jpg'); tic [rows cols] = size(A); diff1 = 0; for x = 1:rows for y = 1:cols diff = A(x,y)-B(x,y); diff1

我在做图像处理。我想添加两幅图像的像素差

假设我有两幅图像A和B,我选取两幅图像的第一个像素并存储差值。我想将此差值添加到下一个像素差值。我尝试使用此代码,但它不起作用。我怎么做

A = imread('sub2.jpg');
B = imread('sub1.jpg');
tic
[rows cols] = size(A);
diff1 = 0;
for x = 1:rows
   for y = 1:cols
       diff = A(x,y)-B(x,y);
       diff1 = diff1+diff;
   end
end
disp(diff1);
toc

您可以在一行中完成,如下所示:

sum(sum(imsubtract(A-B)))
减去两幅图像并将差值保存在与
a
大小相同的矩阵中。然后,
sum
取结果的和

如果需要绝对差异,可以使用而不是


请注意,差异值分别为0和255。如果您想要负面实例,那么您应该直接减去矩阵,因为
A-B

看起来还可以,但是您最好使用:

diff1 = sum(sum(A-B));
或者如果
B
大于
A

diff1 = sum(sum(A-B(1:size(A,1),1:size(A,2))));

这只给出了一个值(就像您的代码一样),我不确定这是否真的是您想要的

A
B
大小是否相同?还要注意的是,在内置函数(
diff
)之后明智地命名变量不是指
imsubtract(a,B)
而不是
imsubtract(a-B)