0

たとえば、同じサイズの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];

との両方から最大値のみを選択する必要がありimg1ますimg2。新しい画像が欲しい

img3 = [5 5 5 5,7 7 7 7, 9 9 9 9,8 8 8 8]; 

つまり、とのすべてのピクセルを比較し、img1とからの最大値を含むimg2新しいピクセルを作成したいと思います。img3img1img2

これどうやってするの?

4

3 に答える 3

8

私は何かが欠けているに違いありません。何が問題なのですか:

  img3 = max(img1, img2);

ドキュメントに基づく:

 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.

したがって、期待どおりに機能するはずです。

さて、誰もがこれらの洗練されたソリューションを思い付くので、私は自分自身で見ようとしなければなりませんでした。

    >> 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

編集:以下のコメントに関して自分自身をチェックする必要がありました(の代わりに;):

    >> 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
于 2013-02-01T04:55:52.797 に答える
4

img3 = img1。*(img1> img2)+ img2。*(img2> img1);

于 2013-02-01T04:44:43.743 に答える
1

2つの2D配列の3Dマトリックスを作成できます。

a(:,:,1)=img1;
a(:,:,2)=img2;

それから

ans=max(a,[],3);
于 2013-02-01T04:30:07.653 に答える