如何从matlab中的2个图像中仅选择最大像素值来创建新的相同尺寸图像?

vho*_*ong 0 matlab image-processing

例如,假设我有2个具有相同大小的图像,并且这2个图像具有相似的像素值

img1 = [1 5 1 5,7 2 7 2, 3 9 3 9,8 4 8 4]; 
img2 = [5 1 5 1,2 7 2 7, 9 3 9 3,4 8 4 8];
Run Code Online (Sandbox Code Playgroud)

我需要选择只从两个的最大值img1img2.我想要新的形象

img3 = [5 5 5 5,7 7 7 7, 9 9 9 9,8 8 8 8]; 
Run Code Online (Sandbox Code Playgroud)

总之,我想所有的像素比较img1,并img2创造新的img3包含从最大值img1img2.

我怎样才能做到这一点?

tha*_*ang 8

我肯定错过了什么.有什么问题:

  img3 = max(img1, img2);
Run Code Online (Sandbox Code Playgroud)

根据文档:

 MAX(X,Y) returns an array the same size as X and Y with the
    largest elements taken from X or Y. Either one can be a scalar.
Run Code Online (Sandbox Code Playgroud)

所以它应该按预期工作.

好吧,因为每个人都想出这些复杂的解决方案,我不得不亲自去看看.

    >> img1 = [1 5 1 5,7 2 7 2, 3 9 3 9,8 4 8 4];
    >> img2 = [5 1 5 1,2 7 2 7, 9 3 9 3,4 8 4 8];
    >> img3 = max(img1,img2);
    >> img3

    img3 =

 5     5     5     5     7     7     7     7     9     9     9     9     8     8     8     8
Run Code Online (Sandbox Code Playgroud)

编辑:必须检查自己的下面的评论(;而不是,):

    >> img1 = [1 5 1 5;7 2 7 2; 3 9 3 9;8 4 8 4];
    >> img2 = [5 1 5 1;2 7 2 7; 9 3 9 3;4 8 4 8];
    >> img3 = max(img1,img2);
    >> img3

    img3 =

         5     5     5     5
         7     7     7     7
         9     9     9     9
         8     8     8     8
Run Code Online (Sandbox Code Playgroud)